fixed issue 1084

This commit is contained in:
mdipierro
2012-10-12 22:16:23 -05:00
parent 8a2d18b63b
commit 2b1d9acba5
3 changed files with 11 additions and 2 deletions
+1 -1
View File
@@ -1 +1 @@
Version 2.1.0 (2012-10-12 18:16:59) dev
Version 2.1.0 (2012-10-12 22:16:19) dev
+4
View File
@@ -6565,6 +6565,10 @@ def smart_query(fields,text):
elif op == 'startswith': new_query = field.startswith(value)
elif op == 'endswith': new_query = field.endswith(value)
else: raise RuntimeError, "Invalid operation"
elif field._db._adapter.dbengine=='google:datastore' and \
field.type in ('list:integer', 'list:string', 'list:reference'):
if op == 'contains': new_query = field.contains(value)
else: raise RuntimeError, "Invalid operation"
else: raise RuntimeError, "Invalid operation"
if neg: new_query = ~new_query
if query is None:
+6 -1
View File
@@ -1528,15 +1528,20 @@ class SQLFORM(FORM):
'datetime':['=','!=','<','>','<=','>='],
'integer':['=','!=','<','>','<=','>='],
'double':['=','!=','<','>','<=','>='],
'id':['=','!=','<','>','<=','>='],
'reference':['=','!=','<','>','<=','>='],
'boolean':['=','!=']}
if fields[0]._db._adapter.dbengine=='google:datastore':
search_options['string'] = ['=','!=','<','>','<=','>=']
search_options['text'] = ['=','!=','<','>','<=','>=']
search_options['list:string'] = ['contains']
search_options['list:integer'] = ['contains']
search_options['list:reference'] = ['contains']
criteria = []
selectfields = []
for field in fields:
name = str(field).replace('.','-')
options = search_options.get(field.type,None)
options = search_options.get(field.type.split(' ')[0],None)
if options:
label = isinstance(field.label,str) and T(field.label) or field.label
selectfields.append(OPTION(label, _value=str(field)))