[FIX] Search made working for function/related fields with store=True/{...} or fnct_search=method

bzr revid: jvo@tinyerp.com-20100202150454-x9kne83yzkjciidw
This commit is contained in:
Jay (Open ERP)
2010-02-02 20:34:54 +05:30
parent 5ac0fe688a
commit 9148fc2662
+14 -14
View File
@@ -149,21 +149,21 @@ class expression(object):
continue
if field._properties:
if field._properties and ((not field.store) or field._fnct_search):
# this is a function field
if not field.store:
if not field._fnct_search:
# the function field doesn't provide a search function and doesn't store
# values in the database, so we must ignore it : we generate a dummy leaf
self.__exp[i] = self.__DUMMY_LEAF
else:
subexp = field.search(cr, uid, table, left, [self.__exp[i]], context=context)
# we assume that the expression is valid
# we create a dummy leaf for forcing the parsing of the resulting expression
self.__exp[i] = '&'
self.__exp.insert(i + 1, self.__DUMMY_LEAF)
for j, se in enumerate(subexp):
self.__exp.insert(i + 2 + j, se)
if not field._fnct_search:
# the function field doesn't provide a search function and doesn't store
# values in the database, so we must ignore it : we generate a dummy leaf
self.__exp[i] = self.__DUMMY_LEAF
else:
subexp = field.search(cr, uid, table, left, [self.__exp[i]], context=context)
# we assume that the expression is valid
# we create a dummy leaf for forcing the parsing of the resulting expression
self.__exp[i] = '&'
self.__exp.insert(i + 1, self.__DUMMY_LEAF)
for j, se in enumerate(subexp):
self.__exp.insert(i + 2 + j, se)
# else, the value of the field is store in the database, so we search on it