Searcher on return shipments doesn't work
Scenario:
1- Install Sale module
2- Create sale and processs -> Now you have new Shipments Out
3- Go to Shipemnts, and click Relations/Sale:
Traceback (most recent call last):
File "/trytond/protocols/jsonrpc.py", line 162, in _marshaled_dispatch
response['result'] = dispatch_method(method, params)
File "/trytond/protocols/jsonrpc.py", line 191, in _dispatch
res = dispatch(*args)
File "/trytond/protocols/dispatcher.py", line 162, in dispatch
result = rpc.result(meth(*c_args, **c_kwargs))
File "/trytond/model/modelsql.py", line 1083, in search
tables, expression = cls.search_domain(domain)
File "/trytond/model/modelsql.py", line 1262, in search_domain
expression = convert(domain)
File "/trytond/model/modelsql.py", line 1260, in convert
domain[1:] if domain[0] == 'AND' else domain)))
File "/trytond/model/modelsql.py", line 1259, in <genexpr>
return And((convert(d) for d in (
File "/trytond/model/modelsql.py", line 1252, in convert
return convert(expression)
File "/trytond/model/modelsql.py", line 1260, in convert
domain[1:] if domain[0] == 'AND' else domain)))
File "/trytond/model/modelsql.py", line 1259, in <genexpr>
return And((convert(d) for d in (
File "/trytond/model/modelsql.py", line 1250, in convert
expression = field.convert_domain(domain, tables, cls)
File "/trytond/model/fields/one2many.py", line 282, in convert_domain
target_domain, tables=target_tables)
File "/trytond/model/modelsql.py", line 1262, in search_domain
expression = convert(domain)
File "/trytond/model/modelsql.py", line 1260, in convert
domain[1:] if domain[0] == 'AND' else domain)))
File "/trytond/model/modelsql.py", line 1259, in <genexpr>
return And((convert(d) for d in (
File "/trytond/model/modelsql.py", line 1250, in convert
expression = field.convert_domain(domain, tables, cls)
File "/trytond/model/fields/one2many.py", line 282, in convert_domain
target_domain, tables=target_tables)
File "/trytond/model/modelsql.py", line 1262, in search_domain
expression = convert(domain)
File "/trytond/model/modelsql.py", line 1260, in convert
domain[1:] if domain[0] == 'AND' else domain)))
File "/trytond/model/modelsql.py", line 1259, in <genexpr>
return And((convert(d) for d in (
File "/trytond/model/modelsql.py", line 1250, in convert
expression = field.convert_domain(domain, tables, cls)
File "/trytond/model/fields/reference.py", line 125, in convert_domain
return super(Reference, self).convert_domain(domain, tables, Model)
File "/trytond/model/fields/field.py", line 271, in convert_domain
name, operator, value = domain
ValueError: too many values to unpack
Since salebec17d1e4ad8 ( Use real O2M field for moves ) change move field type from function(o2m) to o2m.
I try revert to sale62bc341d70f7 (add .id) and work me in relation sales from shipment out:
def search_shipments_returns(model_name):
'''
Search on shipments or returns
'''
def method(self, name, clause):
return [('lines.moves.shipment.id',) + tuple(clause[1:])
+ (model_name,)]
return classmethod(method)
But with this change, now I can't search "shipments" in sale tree (if a shipments field is in tree view):
Traceback (most recent call last):
File "/home/resteve/virtualenv/try38/trytond/trytond/protocols/dispatcher.py", line 173, in dispatch
result = rpc.result(meth(*c_args, **c_kwargs))
File "/home/resteve/virtualenv/try38/trytond/trytond/model/modelsql.py", line 1138, in search
cursor.execute(*select)
File "/home/resteve/virtualenv/try38/trytond/trytond/backend/postgresql/database.py", line 282, in execute
return self.cursor.execute(sql, params)
ProgrammingError: operator does not exist: integer ~~* unknown
LINE 1: ...ROM "stock_shipment_out" AS "d" WHERE ((("d"."id" ILIKE '%1%...
^
HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
About your opinion?