diff options
| author | Nicolas Lempereur <nle@odoo.com> | 2019-03-15 13:25:11 +0000 |
|---|---|---|
| committer | Nicolas Lempereur <nle@odoo.com> | 2019-03-15 15:29:08 +0000 |
| commit | de3ff2e53373e7200bd123d58edb32fcfca9fccf (patch) | |
| tree | c3b66b61ef134b2f9bfac2474acd6d06a4a106c9 | |
| parent | 82c4393fd025f9ab50197c0d68d52f57eb55ded2 (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>
| -rw-r--r-- | addons/analytic/models/analytic_account.py | 5 |
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() |
