Crash when searching multiple work names
If I use the following filter on timesheet lines: "Work: analyis;design"
I get the following exception:
Warning:
Traceback (most recent call last):
File "/usr/local/lib/python37/dist-packages/trytond/wsgipy", line 109, in dispatch_request
return endpoint(request, **requestview_args)
File "/usr/local/lib/python37/dist-packages/trytond/protocols/dispatcherpy", line 48, in rpc
request, database_name, *requestrpc_params)
File "/usr/local/lib/python37/dist-packages/trytond/wsgipy", line 77, in auth_required
return wrapped(*args, **kwargs)
File "/usr/local/lib/python37/dist-packages/trytond/protocols/wrapperspy", line 131, in wrapper
return func(request, pool, *args, **kwargs)
File "/usr/local/lib/python37/dist-packages/trytond/protocols/dispatcherpy", line 181, in _dispatch
result = rpcresult(meth(*c_args, **c_kwargs))
File "/usr/local/lib/python37/dist-packages/trytond/model/modelsqlpy", line 1248, in search
tables, expression = clssearch_domain(domain)
File "/usr/local/lib/python37/dist-packages/trytond/model/modelsqlpy", line 1435, in search_domain
expression = convert(domain)
File "/usr/local/lib/python37/dist-packages/trytond/model/modelsqlpy", line 1433, in convert
domain[1:] if domain[0] == 'AND' else domain)))
File "/usr/local/lib/python37/dist-packages/trytond/model/modelsqlpy", line 1432, in <genexpr>
return And((convert(d) for d in (
File "/usr/local/lib/python37/dist-packages/trytond/model/modelsqlpy", line 1423, in convert
expression = fieldconvert_domain(domain, tables, cls)
File "/usr/local/lib/python37/dist-packages/trytond/model/fields/fieldpy", line 192, in wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python37/dist-packages/trytond/model/fields/many2onepy", line 238, in convert_domain
target_domain, tables=target_tables)
File "/usr/local/lib/python37/dist-packages/trytond/model/modelsqlpy", line 1435, in search_domain
expression = convert(domain)
File "/usr/local/lib/python37/dist-packages/trytond/model/modelsqlpy", line 1433, in convert
domain[1:] if domain[0] == 'AND' else domain)))
File "/usr/local/lib/python37/dist-packages/trytond/model/modelsqlpy", line 1432, in <genexpr>
return And((convert(d) for d in (
File "/usr/local/lib/python37/dist-packages/trytond/model/modelsqlpy", line 1425, in convert
return convert(expression)
File "/usr/local/lib/python37/dist-packages/trytond/model/modelsqlpy", line 1430, in convert
return Or((convert(d) for d in domain[1:]))
File "/usr/local/lib/python37/dist-packages/trytond/model/modelsqlpy", line 1430, in <genexpr>
return Or((convert(d) for d in domain[1:]))
File "/usr/local/lib/python37/dist-packages/trytond/model/modelsqlpy", line 1423, in convert
expression = fieldconvert_domain(domain, tables, cls)
File "/usr/local/lib/python37/dist-packages/trytond/model/fields/fieldpy", line 192, in wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python37/dist-packages/trytond/model/fields/referencepy", line 183, in convert_domain
query = Targetsearch(target_domain, order=[], query=True)
File "/usr/local/lib/python37/dist-packages/trytond/model/modelsqlpy", line 1248, in search
tables, expression = clssearch_domain(domain)
File "/usr/local/lib/python37/dist-packages/trytond/model/modelsqlpy", line 1435, in search_domain
expression = convert(domain)
File "/usr/local/lib/python37/dist-packages/trytond/model/modelsqlpy", line 1433, in convert
domain[1:] if domain[0] == 'AND' else domain)))
File "/usr/local/lib/python37/dist-packages/trytond/model/modelsqlpy", line 1432, in <genexpr>
return And((convert(d) for d in (
File "/usr/local/lib/python37/dist-packages/trytond/model/modelsqlpy", line 1423, in convert
expression = fieldconvert_domain(domain, tables, cls)
File "/usr/local/lib/python37/dist-packages/trytond/model/fields/functionpy", line 79, in convert_domain
return getattr(Model, selfsearcher)(selfname, domain)
File "/usr/local/lib/python37/dist-packages/trytond/model/treepy", line 49, in search_rec_name
for i, v in range(reversed(valuesplit(separator))):
TypeError: 'list_reverseiterator' object cannot be interpreted as an integer
The client performs the following searc on the server:
search(*(['work.rec_name', 'in', ['analyis', 'design']]
This can be reproducible on latest demo.