From dc3ec193d9e0a16282c4221ad631ab4e08bbfe05 Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Mon, 3 Mar 2025 21:18:02 +0100 Subject: [PATCH] [FIX] l10n_es_partner: Inject _rec_names_search properly Previous patch was overriding _auto_init method for injecting the comercial field in the list of fields to search for (_rec_names_search), but this method is only called on module installation/update, so if you restart the Odoo server after that, you lose the injection. Thus, let's inject it if not present when calling name_search, and this way we always have it available. TT55241 --- l10n_es_partner/models/res_partner.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/l10n_es_partner/models/res_partner.py b/l10n_es_partner/models/res_partner.py index 686b97daccc..9448e1a4d77 100644 --- a/l10n_es_partner/models/res_partner.py +++ b/l10n_es_partner/models/res_partner.py @@ -1,7 +1,7 @@ # Copyright 2009 Jordi Esteve # Copyright 2012-2014 Ignacio Ibeas # Copyright 2016 Tecnativa - Carlos Dauden -# Copyright 2016-2022 Tecnativa - Pedro M. Baeza +# Copyright 2016,2022,2025 Tecnativa - Pedro M. Baeza # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl-3). from odoo import api, fields, models @@ -49,6 +49,9 @@ def _commercial_fields(self): res += ["comercial"] return res - def _auto_init(self): - self.env["res.partner"]._rec_names_search.append("comercial") - return super()._auto_init() + @api.model + def name_search(self, name="", args=None, operator="ilike", limit=100): + # Inject the field comercial in _rec_names_search if not exists + if "comercial" not in self._rec_names_search: + self._rec_names_search.append("comercial") + return super().name_search(name=name, args=args, operator=operator, limit=limit)