[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>
This commit is contained in:
Nicolas Lempereur
2019-03-15 15:29:08 +00:00
parent 82c4393fd0
commit de3ff2e533
+4 -1
View File
@@ -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()