diff --git a/.tx/config b/.tx/config index 0c227140992..669d6faa3fe 100644 --- a/.tx/config +++ b/.tx/config @@ -47,6 +47,11 @@ file_filter = addons/account_tax_cash_basis/i18n/.po source_file = addons/account_tax_cash_basis/i18n/account_tax_cash_basis.pot source_lang = en +[odoo-9.account_tax_exigible] +file_filter = addons/account_tax_exigible/i18n/.po +source_file = addons/account_tax_exigible/i18n/account_tax_exigible.pot +source_lang = en + [odoo-9.account_tax_python] file_filter = addons/account_tax_python/i18n/.po source_file = addons/account_tax_python/i18n/account_tax_python.pot diff --git a/addons/account/views/report_agedpartnerbalance.xml b/addons/account/views/report_agedpartnerbalance.xml index e4e3a8451b3..49a400258cd 100644 --- a/addons/account/views/report_agedpartnerbalance.xml +++ b/addons/account/views/report_agedpartnerbalance.xml @@ -4,7 +4,7 @@
-

Aged Trial Balance

+

Aged Partner Balance

diff --git a/addons/account_asset/account_asset_invoice.py b/addons/account_asset/account_asset_invoice.py index 223eeb3776d..2460afd3fea 100644 --- a/addons/account_asset/account_asset_invoice.py +++ b/addons/account_asset/account_asset_invoice.py @@ -28,8 +28,8 @@ class AccountInvoiceLine(models.Model): _inherit = 'account.invoice.line' asset_category_id = fields.Many2one('account.asset.category', string='Asset Category') - asset_start_date = fields.Date(string='Asset End Date', compute='_get_asset_date', readonly=True, store=True) - asset_end_date = fields.Date(string='Asset Start Date', compute='_get_asset_date', readonly=True, store=True) + asset_start_date = fields.Date(string='Asset Start Date', compute='_get_asset_date', readonly=True, store=True) + asset_end_date = fields.Date(string='Asset End Date', compute='_get_asset_date', readonly=True, store=True) asset_mrr = fields.Float(string='Monthly Recurring Revenue', compute='_get_asset_date', readonly=True, digits=dp.get_precision('Account'), store=True) @api.one diff --git a/addons/l10n_de_skr03/account_chart.xml b/addons/l10n_de_skr03/account_chart.xml index 368cd9a5937..d725d573070 100644 --- a/addons/l10n_de_skr03/account_chart.xml +++ b/addons/l10n_de_skr03/account_chart.xml @@ -484,7 +484,7 @@ Postbank 2 1120 - + @@ -708,7 +708,7 @@ Nebenkasse 1 1010 - + @@ -750,14 +750,14 @@ Postbank 3 1130 - + Bank 3 1230 - + @@ -806,7 +806,7 @@ Schecks 1330 - + @@ -925,7 +925,7 @@ Bank 4 1240 - + @@ -1492,7 +1492,7 @@ LZB-Guthaben 1190 - + @@ -2850,7 +2850,7 @@ Bank 2 1220 - + @@ -3116,7 +3116,7 @@ Postbank 1 1110 - + @@ -4019,7 +4019,7 @@ Nebenkasse 2 1020 - + @@ -4796,7 +4796,7 @@ Bank 1 1210 - + @@ -5020,7 +5020,7 @@ Postbank 1100 - + @@ -6161,7 +6161,7 @@ Bank 5 1250 - + @@ -6511,7 +6511,7 @@ Bundesbankguthaben 1195 - + @@ -7218,7 +7218,7 @@ Geldtransit 1360 - + diff --git a/addons/l10n_de_skr04/account_chart.xml b/addons/l10n_de_skr04/account_chart.xml index 81b0d42574f..fb9f9bf758d 100644 --- a/addons/l10n_de_skr04/account_chart.xml +++ b/addons/l10n_de_skr04/account_chart.xml @@ -3463,7 +3463,7 @@ 1460 Geldtransit - + @@ -3615,7 +3615,7 @@ 1610 Nebenkasse 1 - + @@ -3623,7 +3623,7 @@ 1620 Nebenkasse 2 - + @@ -3631,7 +3631,7 @@ 1700 Postbank - + @@ -3639,7 +3639,7 @@ 1710 Postbank 1 - + @@ -3647,7 +3647,7 @@ 1720 Postbank 2 - + @@ -3655,7 +3655,7 @@ 1730 Postbank 3 - + @@ -3679,7 +3679,7 @@ 1810 Bank 1 - + @@ -3687,7 +3687,7 @@ 1820 Bank 2 - + @@ -3695,7 +3695,7 @@ 1830 Bank 3 - + @@ -3703,7 +3703,7 @@ 1840 Bank 4 - + @@ -3711,7 +3711,7 @@ 1850 Bank 5 - + diff --git a/addons/l10n_fr/fr_fiscal_templates.xml b/addons/l10n_fr/fr_fiscal_templates.xml index d9f9975abe2..4166f1cc071 100644 --- a/addons/l10n_fr/fr_fiscal_templates.xml +++ b/addons/l10n_fr/fr_fiscal_templates.xml @@ -39,30 +39,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + @@ -128,30 +153,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/addons/l10n_fr/fr_tax.xml b/addons/l10n_fr/fr_tax.xml index 4b88624de95..523c506265a 100644 --- a/addons/l10n_fr/fr_tax.xml +++ b/addons/l10n_fr/fr_tax.xml @@ -33,6 +33,31 @@ taxes + + 20.0-TTC + taxes + + + + 10.0-TTC + taxes + + + + 8.5-TTC + taxes + + + + 5.5-TTC + taxes + + + + 2.1-TTC + taxes + + ACH-8_5 taxes @@ -250,6 +275,77 @@ + + + + TVA collectée (vente) 20,0% TTC + 20.0-TTC + + + percent + + + + sale + + + + + + TVA collectée (vente) 8,5% TTC + 8.5-TTC + + + percent + + + + sale + + + + + + TVA collectée (vente) 10,0% TTC + 10.0-TTC + + + percent + + + + sale + + + + + + TVA collectée (vente) 5,5% TTC + 5.5-TTC + + + percent + + + + sale + + + + + + TVA collectée (vente) 2,1% TTC + 2.1-TTC + + + percent + + + + sale + + + diff --git a/addons/web/static/src/js/views/form_relational_widgets.js b/addons/web/static/src/js/views/form_relational_widgets.js index f8aecdf5b82..be926614bda 100644 --- a/addons/web/static/src/js/views/form_relational_widgets.js +++ b/addons/web/static/src/js/views/form_relational_widgets.js @@ -974,7 +974,7 @@ var X2ManyListView = ListView.extend({ field.no_rerender = true; current_values[field.name] = field.get('value'); }); - var cached_records = _.filter(this.dataset.cache, function(item){return !_.isEmpty(item.values)}); + var cached_records = _.filter(this.dataset.cache, function(item){return !_.isEmpty(item.values) && !item.to_delete;}); var valid = _.every(cached_records, function(record){ _.each(fields, function(field){ var value = record.values[field.name]; diff --git a/addons/website/static/src/js/website.seo.js b/addons/website/static/src/js/website.seo.js index 528c25afa56..9e1c7ead1f5 100644 --- a/addons/website/static/src/js/website.seo.js +++ b/addons/website/static/src/js/website.seo.js @@ -343,8 +343,8 @@ var Configurator = Dialog.extend({ template: 'website.seo_configuration', events: { 'keyup input[name=seo_page_keywords]': 'confirmKeyword', - 'keyup input[name=seo_page_title]': 'titleChanged', - 'keyup textarea[name=seo_page_description]': 'descriptionChanged', + 'blur input[name=seo_page_title]': 'titleChanged', + 'blur textarea[name=seo_page_description]': 'descriptionChanged', 'click button[data-action=add]': 'addKeyword', }, canEditTitle: false, diff --git a/doc/cla/individual/bfotop.md b/doc/cla/individual/bfotop.md new file mode 100644 index 00000000000..8697a595ec7 --- /dev/null +++ b/doc/cla/individual/bfotop.md @@ -0,0 +1,11 @@ + + +Greece, 2016-09-23 + +I hereby agree to the terms of the Odoo Individual Contributor License Agreement v1.0. + +I declare that I am authorized and able to make this agreement and sign this declaration. + +Signed, + +Basilis Fotopoulos bfotop@tax-solutions.gr https://github.com/bfotop diff --git a/doc/cla/individual/kaerdsar.md b/doc/cla/individual/kaerdsar.md new file mode 100644 index 00000000000..70e63803522 --- /dev/null +++ b/doc/cla/individual/kaerdsar.md @@ -0,0 +1,11 @@ +Cuba, 08/10/2016 + +I hereby agree to the terms of the Odoo Individual Contributor License +Agreement v1.0. + +I declare that I am authorized and able to make this agreement and sign this +declaration. + +Signed, + +Cesar Lage kaerdsar@gmail.com https://github.com/kaerdsar diff --git a/openerp/addons/base/ir/ir_config_parameter.py b/openerp/addons/base/ir/ir_config_parameter.py index f8e48e42181..99a127c3c6b 100644 --- a/openerp/addons/base/ir/ir_config_parameter.py +++ b/openerp/addons/base/ir/ir_config_parameter.py @@ -6,10 +6,13 @@ Store database-specific configuration parameters import uuid import datetime +import logging from openerp import SUPERUSER_ID from openerp.osv import osv, fields -from openerp.tools import misc, config, ormcache +from openerp.tools import misc, config, ormcache, mute_logger + +_logger = logging.getLogger(__name__) """ A dictionary holding some configuration parameters to be initialized when the database is created. @@ -38,6 +41,7 @@ class ir_config_parameter(osv.osv): ('key_uniq', 'unique (key)', 'Key must be unique.') ] + @mute_logger('openerp.addons.base.ir.ir_config_parameter') def init(self, cr, force=False): """ Initializes the parameters listed in _default_parameters. @@ -88,6 +92,8 @@ class ir_config_parameter(osv.osv): res_id = self.pool['ir.model.data'].xmlid_to_res_id(cr, uid, group_xml) if res_id: gids.append((4, res_id)) + else: + _logger.warning('Potential Security Issue: Group [%s] is not found.' % group_xml) vals = {'value': value} if gids: diff --git a/openerp/tools/translate.py b/openerp/tools/translate.py index 34de366d56e..6929b31f954 100644 --- a/openerp/tools/translate.py +++ b/openerp/tools/translate.py @@ -305,12 +305,16 @@ def html_translate(callback, value): if not value: return value - parser = etree.HTMLParser(encoding='utf-8') - trans = XMLTranslator(callback, 'html', parser) - wrapped = "
%s
" % encode(value) - root = etree.fromstring(wrapped, parser) - trans.process(root[0][0]) # html > body > div - return trans.get_done()[5:-6] # remove tags
and
+ try: + parser = etree.HTMLParser(encoding='utf-8') + trans = XMLTranslator(callback, 'html', parser) + wrapped = "
%s
" % encode(value) + root = etree.fromstring(wrapped, parser) + trans.process(root[0][0]) # html > body > div + value = trans.get_done()[5:-6] # remove tags
and
+ except ValueError: + _logger.exception("Cannot translate malformed HTML, using source value instead") + return value #