Crash search_active in account_payment when clause is "in" operator
Modules
- account_dunning
- account_payment
Scenario
- Open "Account/Dunning" menu
- Select two or more records
- Related "E-mail Archives" (ir.action)
Traceback (most recent call last):
File "/home/raimon/projectes/nandev2/trytond/trytond/protocols/dispatcher.py", line 195, in _dispatch
result = rpc.result(meth(*c_args, **c_kwargs))
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/raimon/projectes/nandev2/trytond/trytond/model/modelsql.py", line 1509, in search
tables, expression = cls.__search_query(domain, count, query, order)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/raimon/projectes/nandev2/trytond/trytond/model/modelsql.py", line 1428, in __search_query
tables, expression = cls.search_domain(domain)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/raimon/projectes/nandev2/trytond/trytond/model/modelsql.py", line 1648, in search_domain
expression = convert(domain)
^^^^^^^^^^^^^^^
File "/home/raimon/projectes/nandev2/trytond/trytond/model/modelsql.py", line 1644, in convert
return And((convert(d) for d in (
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/raimon/projectes/nandev2/trytond/trytond/model/modelsql.py", line 1644, in <genexpr>
return And((convert(d) for d in (
^^^^^^^^^^
File "/home/raimon/projectes/nandev2/trytond/trytond/model/modelsql.py", line 1635, in convert
expression = field.convert_domain(domain, tables, cls)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/raimon/projectes/nandev2/trytond/trytond/model/fields/field.py", line 200, in wrapper
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/home/raimon/projectes/nandev2/trytond/trytond/model/fields/reference.py", line 205, in convert_domain
query = Target.search(target_domain, order=[], query=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/raimon/projectes/nandev2/trytond/trytond/model/modelsql.py", line 1509, in search
tables, expression = cls.__search_query(domain, count, query, order)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/raimon/projectes/nandev2/trytond/trytond/model/modelsql.py", line 1428, in __search_query
tables, expression = cls.search_domain(domain)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/raimon/projectes/nandev2/trytond/trytond/model/modelsql.py", line 1648, in search_domain
expression = convert(domain)
^^^^^^^^^^^^^^^
File "/home/raimon/projectes/nandev2/trytond/trytond/model/modelsql.py", line 1644, in convert
return And((convert(d) for d in (
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/raimon/projectes/nandev2/trytond/trytond/model/modelsql.py", line 1644, in <genexpr>
return And((convert(d) for d in (
^^^^^^^^^^
File "/home/raimon/projectes/nandev2/trytond/trytond/model/modelsql.py", line 1635, in convert
expression = field.convert_domain(domain, tables, cls)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/raimon/projectes/nandev2/trytond/trytond/model/fields/function.py", line 101, in convert_domain
return getattr(Model, self.searcher)(self.name, domain)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/raimon/projectes/nandev2/trytond/trytond/modules/account_payment/account.py", line 702, in search_active
if tuple(clause[1:]) in {('=', True), ('!=', False)}:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: unhashable type: 'list'
In this case clause is:
> /home/raimon/projectes/nandev2/trytond/trytond/modules/account_payment/account.py(703)search_active()
(Pdb) clause
('active', 'in', [True, False])
(Pdb) tuple(clause[1:])
('in', [True, False])
(Pdb) tuple(clause[1:]) in {('=', True), ('!=', False)}
*** TypeError: unhashable type: 'list'