From 747e05db55058f0531a5ae15a03dc44b950c81dc Mon Sep 17 00:00:00 2001 From: xmo-odoo Date: Wed, 13 Mar 2019 08:45:11 +0000 Subject: [PATCH 1/6] [IMP] base: remove prefetch when getting commercial fields This is related to issue #31549, fixing it in 10 since it's already a minor issue here (importing 500 partners which all have the same parent, on my system the import time goes from 2:30 to 2:00). This is mostly a problem for such fields as `property_product_pricelist` (added do the commercial fields list by `product`): since we're first getting it then writing a field it depends on (updating the address, which contains the country), the field gets invalidated for all records on each record being imported, so if we're importing a bunch of partners which all have the same parent (e.g. company employees) `property_product_pricelist` is going to be re-computed for every partner imported so far as well as the one parent we're interested in, for every new partner we're creating. The problem is much more prevalent with 12.0's batched creates as we're first creating all the new partners then doing the updates, and thus for each new partner we're computing `property_product_pricelist` for all new partners and the one parent we're interested in, roughly doubling the import time of a series of partners which all have the same parent. closes odoo/odoo#31804 Signed-off-by: Raphael Collet (rco) --- odoo/addons/base/res/res_partner.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/odoo/addons/base/res/res_partner.py b/odoo/addons/base/res/res_partner.py index bfca29deff2..3edb315fee6 100644 --- a/odoo/addons/base/res/res_partner.py +++ b/odoo/addons/base/res/res_partner.py @@ -424,7 +424,7 @@ class Partner(models.Model, FormatAddress): as if they were related fields """ commercial_partner = self.commercial_partner_id if commercial_partner != self: - sync_vals = commercial_partner._update_fields_values(self._commercial_fields()) + sync_vals = commercial_partner.with_prefetch()._update_fields_values(self._commercial_fields()) self.write(sync_vals) @api.multi From 7ac7c9776234ecb3e6ee78a441bb812c5a4086ed Mon Sep 17 00:00:00 2001 From: Toufik Ben Jaa Date: Wed, 13 Mar 2019 12:46:21 +0000 Subject: [PATCH 2/6] [FIX] portal: Portal User creation login check - When creating a user from the "Grant Portal Access" wizard, the code checks for duplicate users. It does so by checking if there is a user with the same login as the one we want to create. The check is case sensitive which could lead to issues. For example a mistyped email (with a uppercase somewhere) could fail the duplicate user check. Since emails are not case sensitive, we want the check to be case insensitive too. OPW-1932918 closes odoo/odoo#31818 Signed-off-by: Toufik Benjaa (tbe) --- addons/portal/wizard/portal_wizard.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/portal/wizard/portal_wizard.py b/addons/portal/wizard/portal_wizard.py index 50c623a19e2..4818259a64d 100644 --- a/addons/portal/wizard/portal_wizard.py +++ b/addons/portal/wizard/portal_wizard.py @@ -93,7 +93,7 @@ class PortalWizardUser(models.TransientModel): partners_error_empty |= wizard_user.partner_id elif email in emails: partners_error_emails |= wizard_user.partner_id - user = self.env['res.users'].sudo().with_context(active_test=False).search([('login', '=', email)]) + user = self.env['res.users'].sudo().with_context(active_test=False).search([('login', '=ilike', email)]) if user: partners_error_user |= wizard_user.partner_id emails.append(email) From fa10ba3416691e5d1206290d17d07f8969674a60 Mon Sep 17 00:00:00 2001 From: Antoine Prieels Date: Fri, 15 Mar 2019 09:24:28 +0000 Subject: [PATCH 3/6] [FIX] hw_screen: Use full width of display The customer display used only a small part of the available width. closes odoo/odoo#31865 Signed-off-by: Quentin Lejeune (qle) --- addons/hw_screen/controllers/main.py | 2 +- addons/hw_screen/static/src/js/worker.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/hw_screen/controllers/main.py b/addons/hw_screen/controllers/main.py index 565bdbe02a3..a74662009b5 100644 --- a/addons/hw_screen/controllers/main.py +++ b/addons/hw_screen/controllers/main.py @@ -150,7 +150,7 @@ class HardwareScreen(web.Home): -
+

Odoo Point of Sale

diff --git a/addons/hw_screen/static/src/js/worker.js b/addons/hw_screen/static/src/js/worker.js index 55e389e78ab..b67d611c4ca 100644 --- a/addons/hw_screen/static/src/js/worker.js +++ b/addons/hw_screen/static/src/js/worker.js @@ -32,8 +32,8 @@ $("head").append($parsedHTML.find(".resources").html()); } - $(".container").html($parsedHTML.find('.pos-customer_facing_display').html()); - $(".container").attr('class', 'container').addClass($parsedHTML.find('.pos-customer_facing_display').attr('class')); + $(".container-fluid").html($parsedHTML.find('.pos-customer_facing_display').html()); + $(".container-fluid").attr('class', 'container-fluid').addClass($parsedHTML.find('.pos-customer_facing_display').attr('class')); var d = $('.pos_orderlines_list'); d.scrollTop(d.prop("scrollHeight")); From 79d5d57d0a614c8b18b7dccfaab80afba5b9a0d2 Mon Sep 17 00:00:00 2001 From: Nicolas Lempereur Date: Fri, 15 Mar 2019 10:14:19 +0000 Subject: [PATCH 4/6] [FIX] l10n_be_intrastat: typo EXTRF now 29/19 Intrastat was modified on january 2019 to backport some features for new regulation of belgian intrastat in c5a8e3975. There was a coding typo so EXTRF was code attribute instead. sources: https://www.nbb.be/doc/dq/e_pdf_ex/docxml-en.pdf https://www.nbb.be/doc/dq/f_pdf_ex/docxml-fr2019.pdf opw-1948336 closes #31875 Signed-off-by: Nicolas Lempereur (nle) --- addons/l10n_be_intrastat/wizard/xml_decl.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/l10n_be_intrastat/wizard/xml_decl.py b/addons/l10n_be_intrastat/wizard/xml_decl.py index 067be44ea06..6d07562acde 100644 --- a/addons/l10n_be_intrastat/wizard/xml_decl.py +++ b/addons/l10n_be_intrastat/wizard/xml_decl.py @@ -222,11 +222,13 @@ class XmlDeclaration(models.TransientModel): if dispatchmode: mode1 = 'out_invoice' mode2 = 'in_refund' + extrf = "29" declcode = self._get_expedition_code(extendedmode) declform = self._get_expedition_form(extendedmode) else: mode1 = 'in_invoice' mode2 = 'out_refund' + extrf = "19" declcode = self._get_reception_code(extendedmode) declform = self._get_reception_form(extendedmode) @@ -271,7 +273,7 @@ class XmlDeclaration(models.TransientModel): invoicelines = self.env['account.invoice.line'].browse(invoicelines_ids) for inv_line in invoicelines: - linekey = self._get_intrastat_linekey(declcode, inv_line, dispatchmode, extendedmode) + linekey = self._get_intrastat_linekey(extrf, inv_line, dispatchmode, extendedmode) if linekey is None: continue From 791a38a655009a063e488c07bb141f35e5a52574 Mon Sep 17 00:00:00 2001 From: Denis Vermylen Date: Tue, 12 Mar 2019 16:15:39 +0000 Subject: [PATCH 5/6] [FIX] web: qweb2: allow null values in a foreach iteration Before this commit iteration in a t-foreach containing null or undefined values crashed because they have no attributes. closes odoo/odoo#31828 Signed-off-by: Fabien Meghazi --- addons/web/static/lib/qweb/qweb2.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/web/static/lib/qweb/qweb2.js b/addons/web/static/lib/qweb/qweb2.js index 378c5eb6023..f59318ff910 100644 --- a/addons/web/static/lib/qweb/qweb2.js +++ b/addons/web/static/lib/qweb/qweb2.js @@ -173,7 +173,7 @@ var QWeb2 = { new_dict[as_first] = index === 0; new_dict[as_last] = index + 1 === size; new_dict[as_parity] = (index % 2 == 1 ? 'odd' : 'even'); - if (cur.constructor === Object) { + if (cur && cur.constructor === Object) { this.extend(new_dict, cur); } new_dict[as] = cur; From 36ba37a7a1c959550f5688cc69c4e7a3abd9d02a Mon Sep 17 00:00:00 2001 From: Nicolas Martinelli Date: Fri, 15 Mar 2019 09:58:51 +0000 Subject: [PATCH 6/6] [FIX] base: default rate We set the default rate to be 1.0 instead of 0.0, since a rate of 0.0 doesn't make sense. Partial backport of 298491597cf30418d5e0355eef1fdb12289171e4 opw-1949866 closes odoo/odoo#31866 Signed-off-by: Nicolas Martinelli (nim) --- odoo/addons/base/res/res_currency.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/odoo/addons/base/res/res_currency.py b/odoo/addons/base/res/res_currency.py index 0ee76e0567c..c250d8e374d 100644 --- a/odoo/addons/base/res/res_currency.py +++ b/odoo/addons/base/res/res_currency.py @@ -206,7 +206,7 @@ class CurrencyRate(models.Model): name = fields.Datetime(string='Date', required=True, index=True, default=lambda self: fields.Date.today() + ' 00:00:00') - rate = fields.Float(digits=(12, 6), help='The rate of the currency to the currency of rate 1') + rate = fields.Float(digits=(12, 6), default=1.0, help='The rate of the currency to the currency of rate 1') currency_id = fields.Many2one('res.currency', string='Currency', readonly=True) company_id = fields.Many2one('res.company', string='Company', default=lambda self: self.env.user.company_id)