Projet

Général

Profil

0001-api-use-full-text-search-in-users-API-when-available.patch

Frédéric Péters, 15 novembre 2015 12:58

Télécharger (1,67 ko)

Voir les différences:

Subject: [PATCH] api: use full text search in users API when available (#8984)

 wcs/api.py | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)
wcs/api.py
503 503
        criterias = []
504 504
        query = get_request().form.get('q')
505 505
        if query:
506
            from admin.settings import UserFieldsFormDef
507
            formdef = UserFieldsFormDef()
508
            criteria_fields = [st.ILike('name', query), st.ILike('email', query)]
509
            for field in formdef.fields:
510
                if field.type in ('string', 'text', 'email'):
511
                    criteria_fields.append(st.ILike('f%s' % field.id, query))
512
            criterias.append(st.Or(criteria_fields))
506
            if not get_publisher().is_using_postgresql():
507
                from admin.settings import UserFieldsFormDef
508
                formdef = UserFieldsFormDef()
509
                criteria_fields = [st.ILike('name', query), st.ILike('email', query)]
510
                for field in formdef.fields:
511
                    if field.type in ('string', 'text', 'email'):
512
                        criteria_fields.append(st.ILike('f%s' % field.id, query))
513
                criterias.append(st.Or(criteria_fields))
514
            else:
515
                criterias.append(st.FtsMatch(query))
513 516

  
514 517
        def as_dict(user):
515 518
            user_info = user.get_substitution_variables(prefix='')
516
-