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"