diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2020-12-29 12:09:08 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2021-02-28 12:15:23 +0100 |
commit | 14b4caad1c1eb9e009d485b4428af3f708afe758 (patch) | |
tree | 6f28b883d2ab3d8d94c0774134ce3d8d703ff277 /ishtar_common/views.py | |
parent | e958aa339d4c46cd8edb4624d0c28ccef0495657 (diff) | |
download | Ishtar-14b4caad1c1eb9e009d485b4428af3f708afe758.tar.bz2 Ishtar-14b4caad1c1eb9e009d485b4428af3f708afe758.zip |
Unaccent search for person/orga. Tips for operation form
Diffstat (limited to 'ishtar_common/views.py')
-rw-r--r-- | ishtar_common/views.py | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/ishtar_common/views.py b/ishtar_common/views.py index e445cb44d..d5b38ebed 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -613,9 +613,9 @@ def autocomplete_ishtaruser(request): return HttpResponseBadRequest() query = Q() for q in q.split(' '): - qu = (Q(person__name__icontains=q) | - Q(person__surname__icontains=q) | - Q(person__raw_name__icontains=q)) + qu = (Q(person__name__unaccent__icontains=q) | + Q(person__surname__unaccent__icontains=q) | + Q(person__raw_name__unaccent__icontains=q)) query = query & qu users = models.IshtarUser.objects.filter(query).distinct()[:limit] data = json.dumps([ @@ -643,10 +643,12 @@ def autocomplete_person(request, person_types=None, attached_to=None, return HttpResponseBadRequest() query = Q() for q in q.split(' '): - qu = (Q(name__icontains=q) | Q(surname__icontains=q) | - Q(email__icontains=q) | Q(attached_to__name__icontains=q)) + qu = (Q(name__unaccent__icontains=q) | + Q(surname__unaccent__icontains=q) | + Q(email__unaccent__icontains=q) | + Q(attached_to__name__unaccent__icontains=q)) if permissive: - qu = qu | Q(raw_name__icontains=q) + qu = qu | Q(raw_name__unaccent__icontains=q) query = query & qu if attached_to: query = query & Q(attached_to__pk__in=attached_to.split('_')) @@ -780,7 +782,7 @@ def autocomplete_organization(request, orga_type=None): q = request.GET.get('term') query = Q() for q in q.split(' '): - extra = Q(cached_label__icontains=q) + extra = Q(cached_label__unaccent__icontains=q) query = query & extra if orga_type: try: |