From de3ff2e53373e7200bd123d58edb32fcfca9fccf Mon Sep 17 00:00:00 2001 From: Nicolas Lempereur Date: Fri, 15 Mar 2019 13:25:11 +0000 Subject: [PATCH] [FIX] analytic: account search no partner=>work ok The name_search of account.analytic.account do not find records that have no partner set. This is because some ORM search may breaks when it contains a auto_join relational field. We will try to fix this (at least in master version). In this changeset, we avoid the issue by combining 2 searches instead. opw-1941547 opw-1950010 closes #31881 Signed-off-by: Nicolas Lempereur (nle) --- addons/analytic/models/analytic_account.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/addons/analytic/models/analytic_account.py b/addons/analytic/models/analytic_account.py index bc88e94a19e..68c22417da2 100644 --- a/addons/analytic/models/analytic_account.py +++ b/addons/analytic/models/analytic_account.py @@ -160,7 +160,10 @@ class AccountAnalyticAccount(models.Model): if operator == 'ilike' and not (name or '').strip(): domain = [] else: - domain = ['|', '|', ('code', operator, name), ('name', operator, name), ('partner_id.name', operator, name)] + # search by partner separately because auto_join field can break searches + partner_domain = [('partner_id.name', operator, name)] + ids_partner = self._search(expression.AND([partner_domain, args]), limit=limit, access_rights_uid=name_get_uid) + domain = ['|', '|', ('code', operator, name), ('name', operator, name), ('id', 'in', ids_partner)] analytic_account_ids = self._search(expression.AND([domain, args]), limit=limit, access_rights_uid=name_get_uid) return self.browse(analytic_account_ids).name_get()