summaryrefslogtreecommitdiff
path: root/addons/analytic
diff options
context:
space:
mode:
authorNicolas Lempereur <nle@odoo.com>2019-03-15 13:25:11 +0000
committerNicolas Lempereur <nle@odoo.com>2019-03-15 15:29:08 +0000
commitde3ff2e53373e7200bd123d58edb32fcfca9fccf (patch)
treec3b66b61ef134b2f9bfac2474acd6d06a4a106c9 /addons/analytic
parent82c4393fd025f9ab50197c0d68d52f57eb55ded2 (diff)
[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) <nle@odoo.com>
Diffstat (limited to 'addons/analytic')
-rw-r--r--addons/analytic/models/analytic_account.py5
1 files changed, 4 insertions, 1 deletions
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()