diff --git a/addons/account/models/account_move.py b/addons/account/models/account_move.py index 2c04fcd283f..20e1c9d8886 100644 --- a/addons/account/models/account_move.py +++ b/addons/account/models/account_move.py @@ -160,6 +160,8 @@ class AccountMove(models.Model): if not move.journal_id.update_posted: raise UserError(_('You cannot modify a posted entry of this journal.\nFirst you should set the journal to allow cancelling entries.')) if self.ids: + self.check_access_rights('write') + self.check_access_rule('write') self._check_lock_date() self._cr.execute('UPDATE account_move '\ 'SET state=%s '\ diff --git a/addons/l10n_lu/data/account.account.tag.csv b/addons/l10n_lu/data/account.account.tag.csv index 93c9c280973..f25178a068e 100644 --- a/addons/l10n_lu/data/account.account.tag.csv +++ b/addons/l10n_lu/data/account.account.tag.csv @@ -179,20 +179,17 @@ tag_lu_177,I.B.5. Tabacs fabriqués,taxes tag_lu_178,Base - Vente Biens Tabacs - Extracommunautaire,taxes tag_lu_179,Base - Vente Biens Tabacs - Intracommunautaire,taxes tag_lu_180,Base - Vente Biens Tabacs - Pays,taxes -tag_lu_181,I.B.6.a) Livraisons subséquentes à des acquisitions intracommunautaires dans -le cadre d'opérations triangulaires, lorsque le destinataire identifié à la TVA dans l'Etat membre de destination des biens y est le redevable de la taxe (4),taxes +tag_lu_181,"I.B.6.a) Livraisons subséquentes à des acquisitions intracommunautaires dans le cadre d'opérations triangulaires, lorsque le destinataire identifié à la TVA dans l'Etat membre de destination des biens y est le redevable de la taxe (4)",taxes tag_lu_182,Base - Vente Biens – Triangulaire Intracommunautaire,taxes tag_lu_183,I.B.6.d) Autres opérations réalisées (imposables) à l'étranger,taxes tag_lu_184,Base - Vente Prestations - Extracommunautaire,taxes tag_lu_185,I.B.6.c) Opérations réalisées dans le cadre du régime particulier de l'article 56sexies,taxes tag_lu_186,I.B.7. Opérations à l'intérieur du pays pour lesquelles le preneur est le redevable,taxes -tag_lu_187,I.B.6.b)1) Prestations de services à des identifiés à la TVA dans un autre -Etat membre non exonérées dans l'Etat membre du preneur redevable (art.17/1/b) (5),taxes +tag_lu_187,I.B.6.b)1) Prestations de services à des identifiés à la TVA dans un autre Etat membre non exonérées dans l'Etat membre du preneur redevable (art.17/1/b) (5),taxes tag_lu_188,Base - Vente Prestations - Intracommunautaire,taxes -tag_lu_189,I.B.6.b)2) Prestations de services à des identifiés à la TVA dans un autre -Etat membre exonérées dans l'Etat membre du preneur (art.17/1/b),taxes +tag_lu_189,I.B.6.b)2) Prestations de services à des identifiés à la TVA dans un autre Etat membre exonérées dans l'Etat membre du preneur (art.17/1/b),taxes tag_lu_190,Base - Vente Prestations - Intracommunautaire exonérées dans l'état membre,taxes -tag_lu_191,I.B.1. Livraisons intracommunautaires de biens à des personnes identifiées à la TVA dans unautre Etat membre (art.43/1/d e et f) (3),taxes +tag_lu_191,I.B.1. Livraisons intracommunautaires de biens à des personnes identifiées à la TVA dans un autre Etat membre (art.43/1/d e et f) (3),taxes tag_lu_192,Base - Vente Biens - Intracommunautaire,taxes tag_lu_193,I.C. Chiffre d'affaires imposable,taxes tag_lu_194,II.A. Ventilation du chiffre d'affaires imposable – base,taxes @@ -598,4 +595,4 @@ tag_lu_594,Taxe - Investissement Prestations 17% - Intracommunautaire (-),taxes tag_lu_595,Taxe - Investissement Prestations 3% - Intracommunautaire (-),taxes tag_lu_596,Taxe - Investissement Prestations 6% - Intracommunautaire (-),taxes tag_lu_597,Taxe - Investissement Prestations 8% - Intracommunautaire (-),taxes -tag_lu_598,Base - Sans Taxe,taxes \ No newline at end of file +tag_lu_598,Base - Sans Taxe,taxes diff --git a/addons/point_of_sale/static/src/js/models.js b/addons/point_of_sale/static/src/js/models.js index c5cf1c77e5c..0f8dbdb801e 100644 --- a/addons/point_of_sale/static/src/js/models.js +++ b/addons/point_of_sale/static/src/js/models.js @@ -203,7 +203,7 @@ exports.PosModel = Backbone.Model.extend({ },{ model: 'account.tax', fields: ['name','amount', 'price_include', 'include_base_amount', 'amount_type', 'children_tax_ids'], - domain: null, + domain: function(self) {return [['company_id', '=', self.company && self.company.id || false]]}, loaded: function(self, taxes){ self.taxes = taxes; self.taxes_by_id = {}; diff --git a/addons/point_of_sale/static/src/js/screens.js b/addons/point_of_sale/static/src/js/screens.js index 1dcbf9d90fb..4b6b142cac3 100644 --- a/addons/point_of_sale/static/src/js/screens.js +++ b/addons/point_of_sale/static/src/js/screens.js @@ -1977,6 +1977,7 @@ var PaymentScreenWidget = ScreenWidget.extend({ } order.initialize_validation_date(); + order.finalized = true; if (order.is_to_invoice()) { var invoiced = this.pos.push_and_invoice_order(order); diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index db96b229829..1f95983c1ef 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -581,7 +581,7 @@ class WebClient(http.Controller): def version_info(self): return odoo.service.common.exp_version() - @http.route('/web/tests', type='http', auth="none") + @http.route('/web/tests', type='http', auth="user") def index(self, mod=None, **kwargs): return request.render('web.qunit_suite') diff --git a/addons/web/static/src/js/action_manager.js b/addons/web/static/src/js/action_manager.js index e05ee1d0da4..a31b0900863 100644 --- a/addons/web/static/src/js/action_manager.js +++ b/addons/web/static/src/js/action_manager.js @@ -865,7 +865,7 @@ var ActionManager = Widget.extend({ }); }); }, - ir_actions_act_url: function (action) { + ir_actions_act_url: function (action, options) { var url = action.url; if (session.debug && url && url.length && url[0] === '/') { url = $.param.querystring(url, {debug: session.debug}); @@ -876,6 +876,7 @@ var ActionManager = Widget.extend({ return $.Deferred(); // The action is finished only when the redirection is done } else { window.open(url, '_blank'); + options.on_close(); } return $.when(); }, diff --git a/addons/web_planner/static/src/js/web_planner_common.js b/addons/web_planner/static/src/js/web_planner_common.js index ad27739f2c5..1e230a4f830 100644 --- a/addons/web_planner/static/src/js/web_planner_common.js +++ b/addons/web_planner/static/src/js/web_planner_common.js @@ -66,10 +66,17 @@ var PlannerDialog = Widget.extend({ */ willStart: function() { var self = this; + var context = session.user_context; + // fallback context for frontend + if(_.isEmpty(context)) { + context = { + lang: (document.documentElement.getAttribute('lang')||'').replace('-', '_'), + }; + } var res = this._super.apply(this, arguments).then(function() { return (new Model('web.planner')).call('render', [self.planner.view_id[0], self.planner.planner_application], - {context: session.user_context}); + {context: context}); }).then(function(template) { self.$res = $(template); }); diff --git a/addons/website_sale/static/src/js/website_sale.js b/addons/website_sale/static/src/js/website_sale.js index 57a6beecca0..a17c2763f6f 100644 --- a/addons/website_sale/static/src/js/website_sale.js +++ b/addons/website_sale/static/src/js/website_sale.js @@ -168,7 +168,7 @@ odoo.define('website_sale.website_sale', function (require) { } else { $q.parents('li:first').addClass("hidden"); - $('a[href^="/shop/checkout"]').addClass("hidden"); + $('a[href*="/shop/checkout"]').addClass("hidden"); } $q.html(data.cart_quantity).hide().fadeIn(600); diff --git a/doc/cla/corporate/teclib.md b/doc/cla/corporate/teclib.md index ff9db6dd21c..275a2b41300 100644 --- a/doc/cla/corporate/teclib.md +++ b/doc/cla/corporate/teclib.md @@ -12,3 +12,4 @@ List of contributors: Laurent Destailleur ldestailleur@teclib.com https://github.com/eldy David Halgand dhalgand@teclib.com https://github.com/halgandd +Guillaume Masson gmasson@teclib.com https://github.com/metaminux