changeset 015aa5ebbd2a in modules/country:default
details: https://hg.tryton.org/modules/country?cmd=changeset&node=015aa5ebbd2a
description:
        Invert boolean operator in search_rec_name and strip code value

        issue11665
        review427601003
diffstat:

 country.py |  22 ++++++++++++++++++----
 1 files changed, 18 insertions(+), 4 deletions(-)

diffs (50 lines):

diff -r 77c8a0d86ecb -r 015aa5ebbd2a country.py
--- a/country.py        Fri Aug 26 18:21:15 2022 +0200
+++ b/country.py        Thu Sep 01 22:08:52 2022 +0200
@@ -63,10 +63,14 @@
 
     @classmethod
     def search_rec_name(cls, name, clause):
+        if clause[1].startswith('!') or clause[1].startswith('not '):
+            bool_op = 'AND'
+        else:
+            bool_op = 'OR'
         code_value = clause[2]
         if clause[1].endswith('like'):
             code_value = lstrip_wildcard(clause[2])
-        return ['OR',
+        return [bool_op,
             ('name',) + tuple(clause[1:]),
             ('code', clause[1], code_value) + tuple(clause[3:]),
             ('code3', clause[1], code_value) + tuple(clause[3:]),
@@ -288,9 +292,16 @@
 
     @classmethod
     def search_rec_name(cls, name, clause):
-        return ['OR',
+        if clause[1].startswith('!') or clause[1].startswith('not '):
+            bool_op = 'AND'
+        else:
+            bool_op = 'OR'
+        code_value = clause[2]
+        if clause[1].endswith('like'):
+            code_value = lstrip_wildcard(clause[2])
+        return [bool_op,
             ('name',) + tuple(clause[1:]),
-            ('code',) + tuple(clause[1:]),
+            ('code', clause[1], code_value) + tuple(clause[3:]),
             ]
 
     @classmethod
@@ -354,7 +365,10 @@
             bool_op = 'AND'
         else:
             bool_op = 'OR'
+        code_value = clause[2]
+        if clause[1].endswith('like'):
+            code_value = lstrip_wildcard(clause[2])
         return [bool_op,
-            ('postal_code',) + tuple(clause[1:]),
+            ('postal_code', clause[1], code_value) + tuple(clause[3:]),
             ('city',) + tuple(clause[1:]),
             ]

Reply via email to