- Add query_string to search function

- Add context to search on fields function
- Add missing context in _where_calc
This commit is contained in:
Cédric Krier
2008-02-03 00:38:16 +01:00
parent 69b8203133
commit 4c97a9b395
4 changed files with 14 additions and 10 deletions
+3 -1
View File
@@ -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):
+3 -2
View File
@@ -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
View File
@@ -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:
+1 -1
View File
@@ -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):