From 8f3ac2530f0771b2a18b5bc00f286d38407bcdb5 Mon Sep 17 00:00:00 2001 From: len-odoo Date: Fri, 30 Nov 2018 13:41:08 +0000 Subject: [PATCH] [FIX] base, partner_autocomplete: remove vat from the partner selection field MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Commit a6e1eb9f0ad285fac7d0ca0b9f89f046d78ec9c7 introduced the show_vat context key, that displays the Tax ID of a customer after its name when present, similarly to show_address. However it appears on the field when being edited, then disappears at save, which is confusing. Other unclean things tended to happen: you would have "name - taxid" on customer field, but "name" on invoice address and delivery address. Furthermore a client could edit the name manually to erase the Tax ID, and thus recreate a new record for the same customer. We introduce a method to clean the name from the Tax ID, and use it so that it is directly the client's name that is selected at edit. Note that we also replace the standard dash in the 'name - taxid' by a figuredash (‒, U+2012) so as to avoid potential egregious splits because of legitimate customer names. Similar to commit: 3cbfc40303dcc4e5f668050326beb6ff014bf72a (same thing for show_address) opw 1911954 closes odoo/odoo#29189 --- .../static/src/js/partner_autocomplete_many2one.js | 14 ++++++++++++++ odoo/addons/base/models/res_partner.py | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/addons/partner_autocomplete/static/src/js/partner_autocomplete_many2one.js b/addons/partner_autocomplete/static/src/js/partner_autocomplete_many2one.js index 059629010b8..83f2ce9ce0b 100644 --- a/addons/partner_autocomplete/static/src/js/partner_autocomplete_many2one.js +++ b/addons/partner_autocomplete/static/src/js/partner_autocomplete_many2one.js @@ -57,6 +57,19 @@ var PartnerField = FieldMany2One.extend({ }); }, + /** + * Returns the display_name from a string which contains it but was altered + * as a result of the show_vat option. + * Note that the split is done on a 'figuredash', not a standard dash. + * + * @private + * @param {string} value + * @returns {string} display_name without TaxID + */ + _getDisplayNameWithoutVAT: function (value) { + return value.split(' ‒ ')[0]; + }, + /** * Modify autocomplete results rendering * Add logo in the autocomplete results if logo is provided @@ -91,6 +104,7 @@ var PartnerField = FieldMany2One.extend({ * @private */ _renderEdit: function (){ + this.m2o_value = this._getDisplayNameWithoutVAT(this.m2o_value); this._super.apply(this, arguments); this._modifyAutompleteRendering(); }, diff --git a/odoo/addons/base/models/res_partner.py b/odoo/addons/base/models/res_partner.py index 9b29bab628f..1aebd76fd0e 100644 --- a/odoo/addons/base/models/res_partner.py +++ b/odoo/addons/base/models/res_partner.py @@ -618,7 +618,7 @@ class Partner(models.Model): if self._context.get('html_format'): name = name.replace('\n', '
') if self._context.get('show_vat') and partner.vat: - name = "%s - %s" % (name, partner.vat) + name = "%s ‒ %s" % (name, partner.vat) return name @api.multi