summaryrefslogtreecommitdiff
path: root/ishtar_common/views.py
diff options
context:
space:
mode:
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
commit14b4caad1c1eb9e009d485b4428af3f708afe758 (patch)
tree6f28b883d2ab3d8d94c0774134ce3d8d703ff277 /ishtar_common/views.py
parente958aa339d4c46cd8edb4624d0c28ccef0495657 (diff)
downloadIshtar-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.py16
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: