From d7da5b0be2779b8243f677d03e6c29c03df70182 Mon Sep 17 00:00:00 2001 From: Louis Baudoux Date: Fri, 13 Oct 2023 18:41:46 +0200 Subject: [PATCH] [FIX] partner_autocomplete: fix Partner Autocomplete not working on VAT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since b1f1f21, Partner Autocomplete wouldn't work anymore on VAT numbers as the field on which the widget was added was replaced by another one, without the widget. To fix this, the widget will now be added dynamically in `_get_view` so that it happens after modifications made through view inheritance. Another way of fixing this was proposed in b14a3af, but required an upgrade of the `base_vat` module. closes odoo/odoo#138865 X-original-commit: 6f7baee9899a350eade07c41d3c557fdca0d0904 Signed-off-by: William André (wan) Signed-off-by: Louis Baudoux (lba) --- addons/partner_autocomplete/models/res_company.py | 13 +++++++++++++ addons/partner_autocomplete/models/res_partner.py | 13 +++++++++++++ .../views/res_company_views.xml | 6 ------ .../views/res_partner_views.xml | 15 --------------- 4 files changed, 26 insertions(+), 21 deletions(-) diff --git a/addons/partner_autocomplete/models/res_company.py b/addons/partner_autocomplete/models/res_company.py index 742cbdf6d66..b90bcdd6e7f 100644 --- a/addons/partner_autocomplete/models/res_company.py +++ b/addons/partner_autocomplete/models/res_company.py @@ -31,6 +31,19 @@ class ResCompany(models.Model): res.iap_enrich_auto() return res + @api.model + def _get_view(self, view_id=None, view_type='form', **options): + arch, view = super()._get_view(view_id, view_type, **options) + + if view_type == 'form': + for node in arch.xpath( + "//field[@name='name']" + "|//field[@name='vat']" + ): + node.attrib['widget'] = 'field_partner_autocomplete' + + return arch, view + def iap_enrich_auto(self): """ Enrich company. This method should be called by automatic processes and a protection is added to avoid doing enrich in a loop. """ diff --git a/addons/partner_autocomplete/models/res_partner.py b/addons/partner_autocomplete/models/res_partner.py index 6bef55c8787..672d915c5a0 100644 --- a/addons/partner_autocomplete/models/res_partner.py +++ b/addons/partner_autocomplete/models/res_partner.py @@ -181,3 +181,16 @@ class ResPartner(models.Model): self._update_autocomplete_data(values.get('vat', False)) return res + + @api.model + def _get_view(self, view_id=None, view_type='form', **options): + arch, view = super()._get_view(view_id, view_type, **options) + + if view_type == 'form': + for node in arch.xpath( + "//field[@name='name']" + "|//field[@name='vat']" + ): + node.attrib['widget'] = 'field_partner_autocomplete' + + return arch, view diff --git a/addons/partner_autocomplete/views/res_company_views.xml b/addons/partner_autocomplete/views/res_company_views.xml index 5c051de590b..9bcadffad6a 100644 --- a/addons/partner_autocomplete/views/res_company_views.xml +++ b/addons/partner_autocomplete/views/res_company_views.xml @@ -5,12 +5,6 @@ res.company - - field_partner_autocomplete - - - field_partner_autocomplete - diff --git a/addons/partner_autocomplete/views/res_partner_views.xml b/addons/partner_autocomplete/views/res_partner_views.xml index 0745407cc1a..4137ed769ab 100644 --- a/addons/partner_autocomplete/views/res_partner_views.xml +++ b/addons/partner_autocomplete/views/res_partner_views.xml @@ -5,15 +5,6 @@ res.partner - - field_partner_autocomplete - - - field_partner_autocomplete - - - field_partner_autocomplete - @@ -26,12 +17,6 @@ res.partner - - field_partner_autocomplete - - - field_partner_autocomplete -