general: change user search to look in both FTS and actual fields (#9132)
This commit is contained in:
parent
dca7a57115
commit
52db59fc4e
19
wcs/api.py
19
wcs/api.py
|
@ -515,16 +515,15 @@ class ApiUsersDirectory(Directory):
|
|||
criterias = []
|
||||
query = get_request().form.get('q')
|
||||
if query:
|
||||
if not get_publisher().is_using_postgresql():
|
||||
from admin.settings import UserFieldsFormDef
|
||||
formdef = UserFieldsFormDef()
|
||||
criteria_fields = [st.ILike('name', query), st.ILike('email', query)]
|
||||
for field in formdef.fields:
|
||||
if field.type in ('string', 'text', 'email'):
|
||||
criteria_fields.append(st.ILike('f%s' % field.id, query))
|
||||
criterias.append(st.Or(criteria_fields))
|
||||
else:
|
||||
criterias.append(st.FtsMatch(query))
|
||||
from admin.settings import UserFieldsFormDef
|
||||
formdef = UserFieldsFormDef()
|
||||
criteria_fields = [st.ILike('name', query), st.ILike('email', query)]
|
||||
for field in formdef.fields:
|
||||
if field.type in ('string', 'text', 'email'):
|
||||
criteria_fields.append(st.ILike('f%s' % field.id, query))
|
||||
if get_publisher().is_using_postgresql():
|
||||
criteria_fields.append(st.FtsMatch(query))
|
||||
criterias.append(st.Or(criteria_fields))
|
||||
|
||||
def as_dict(user):
|
||||
user_info = user.get_substitution_variables(prefix='')
|
||||
|
|
|
@ -302,7 +302,13 @@ class UsersViewDirectory(Directory):
|
|||
return r.getvalue()
|
||||
|
||||
formdef = UserFieldsFormDef()
|
||||
criterias = [FtsMatch(query)]
|
||||
criteria_fields = [ILike('name', query), ILike('email', query)]
|
||||
for field in formdef.fields:
|
||||
if field.type in ('string', 'text', 'email'):
|
||||
criteria_fields.append(ILike('f%s' % field.id, query))
|
||||
if get_publisher().is_using_postgresql():
|
||||
criteria_fields.append(FtsMatch(query))
|
||||
criterias = [Or(criteria_fields)]
|
||||
users = get_publisher().user_class.select(order_by=order_by,
|
||||
clause=criterias, limit=limit, offset=offset)
|
||||
total_count = get_publisher().user_class.count(criterias)
|
||||
|
|
Loading…
Reference in New Issue