changeset 2075274f6be9 in modules/analytic_account:default
details: 
https://hg.tryton.org/modules/analytic_account?cmd=changeset;node=2075274f6be9
description:
        Strip code in account rec_name's searcher

        issue10157
        review340151003
diffstat:

 account.py |  15 +++++++++++----
 1 files changed, 11 insertions(+), 4 deletions(-)

diffs (33 lines):

diff -r beb9d9a52376 -r 2075274f6be9 account.py
--- a/account.py        Fri Mar 05 15:49:19 2021 +0100
+++ b/account.py        Sat Mar 06 19:25:16 2021 +0100
@@ -14,6 +14,7 @@
 from trytond.wizard import Wizard, StateView, StateAction, Button
 from trytond.pyson import Eval, If, PYSONEncoder, PYSONDecoder
 from trytond.transaction import Transaction
+from trytond.tools import lstrip_wildcard
 from trytond.pool import Pool
 
 from .exceptions import AccountValidationError
@@ -268,11 +269,17 @@
 
     @classmethod
     def search_rec_name(cls, name, clause):
-        accounts = cls.search([('code',) + tuple(clause[1:])], limit=1)
-        if accounts:
-            return [('code',) + tuple(clause[1:])]
+        if clause[1].startswith('!') or clause[1].startswith('not '):
+            bool_op = 'AND'
         else:
-            return [(cls._rec_name,) + tuple(clause[1:])]
+            bool_op = 'OR'
+        code_value = clause[2]
+        if clause[1].endswith('like'):
+            code_value = lstrip_wildcard(clause[2])
+        return [bool_op,
+            ('code', clause[1], code_value) + tuple(clause[3:]),
+            (cls._rec_name,) + tuple(clause[1:]),
+            ]
 
     def distribute(self, amount):
         "Return a list of (account, amount) distribution"

Reply via email to