- Add query_string to search function
- Add context to search on fields function - Add missing context in _where_calc
This commit is contained in:
@@ -142,7 +142,7 @@ class UIMenu(OSV):
|
||||
_description = __doc__
|
||||
|
||||
def search(self, cursor, user, args, offset=0, limit=2000, order=None,
|
||||
context=None, count=False):
|
||||
context=None, count=False, query_string=False):
|
||||
res_user_obj = self.pool.get('res.user')
|
||||
if context is None:
|
||||
context = {}
|
||||
@@ -160,6 +160,8 @@ class UIMenu(OSV):
|
||||
break
|
||||
if count:
|
||||
return len(result)
|
||||
if query_string:
|
||||
return (','.join(['%d' for x in result]), result)
|
||||
return result
|
||||
|
||||
def _get_full_name(self, cursor, user, ids, name, args, context):
|
||||
|
||||
@@ -498,10 +498,11 @@ class Function(_column):
|
||||
self._symbol_f = lambda x: __builtin__.float(x or 0.0)
|
||||
self._symbol_set = (self._symbol_c, self._symbol_f)
|
||||
|
||||
def search(self, cursor, uid, obj, name, args):
|
||||
def search(self, cursor, user, obj, name, arg, context=None):
|
||||
if not self._fnct_search:
|
||||
return []
|
||||
return self._fnct_search(obj, cursor, uid, obj, name, args)
|
||||
return self._fnct_search(obj, cursor, user, obj, name, arg,
|
||||
context=context)
|
||||
|
||||
def get(self, cursor, obj, ids, name, user=None, offset=0, context=None,
|
||||
values=None):
|
||||
|
||||
+7
-6
@@ -1893,14 +1893,14 @@ class ORM(object):
|
||||
j += 1
|
||||
if field._fnct_search:
|
||||
args.extend(field.search(cursor, user, self,
|
||||
arg[0][0], arg))
|
||||
arg[0][0], arg, context=context))
|
||||
elif field._type == 'one2many':
|
||||
field_obj = self.pool.get(field._obj)
|
||||
|
||||
if isinstance(args[i][2], basestring):
|
||||
# get the ids of the records of the "distant" resource
|
||||
ids2 = [x[0] for x in field_obj.name_search(cursor, user,
|
||||
args[i][2], [], args[i][1])]
|
||||
args[i][2], [], args[i][1], context=context)]
|
||||
else:
|
||||
ids2 = args[i][2]
|
||||
if not ids2:
|
||||
@@ -1924,7 +1924,7 @@ class ORM(object):
|
||||
if isinstance(args[i][2], basestring):
|
||||
ids2 = [x[0] for x in self.pool.get(
|
||||
field._obj).name_search(cursor, user, args[i][2], [],
|
||||
'like')]
|
||||
'like', context=context)]
|
||||
else:
|
||||
ids2 = args[i][2]
|
||||
|
||||
@@ -1953,7 +1953,7 @@ class ORM(object):
|
||||
if isinstance(args[i][2], basestring):
|
||||
res_ids = [x[0] for x in self.pool.get(field._obj
|
||||
).name_search(cursor, user, args[i][2], [],
|
||||
args[i][1])]
|
||||
args[i][1], context=context)]
|
||||
else:
|
||||
res_ids = args[i][2]
|
||||
if not len(res_ids):
|
||||
@@ -1973,7 +1973,7 @@ class ORM(object):
|
||||
if isinstance(args[i][2], basestring):
|
||||
ids2 = [x[0] for x in self.pool.get(
|
||||
field._obj).name_search(cursor, user, args[i][2],
|
||||
[], 'like')]
|
||||
[], 'like', context=context)]
|
||||
else:
|
||||
ids2 = args[i][2]
|
||||
|
||||
@@ -1994,7 +1994,8 @@ class ORM(object):
|
||||
else:
|
||||
if isinstance(args[i][2], basestring):
|
||||
res_ids = self.pool.get(field._obj).name_search(cursor,
|
||||
user, args[i][2], [], args[i][1])
|
||||
user, args[i][2], [], args[i][1],
|
||||
context=context)
|
||||
args[i] = (args[i][0], 'in', [x[0] for x in res_ids],
|
||||
table)
|
||||
else:
|
||||
|
||||
@@ -234,7 +234,7 @@ class WizardOSV(OSV):
|
||||
pass
|
||||
|
||||
def search(self, cursor, user, args, offset=0, limit=None, order=None,
|
||||
context=None, count=False):
|
||||
context=None, count=False, query_string=False):
|
||||
pass
|
||||
|
||||
def name_get(self, cursor, user, ids, context=None):
|
||||
|
||||
Reference in New Issue
Block a user