summaryrefslogtreecommitdiff
path: root/ishtar_common
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
parente958aa339d4c46cd8edb4624d0c28ccef0495657 (diff)
downloadIshtar-14b4caad1c1eb9e009d485b4428af3f708afe758.tar.bz2
Ishtar-14b4caad1c1eb9e009d485b4428af3f708afe758.zip
Unaccent search for person/orga. Tips for operation form
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/migrations/0208_unaccent.py17
-rw-r--r--ishtar_common/models.py8
-rw-r--r--ishtar_common/views.py16
3 files changed, 34 insertions, 7 deletions
diff --git a/ishtar_common/migrations/0208_unaccent.py b/ishtar_common/migrations/0208_unaccent.py
new file mode 100644
index 000000000..57aa9ea9e
--- /dev/null
+++ b/ishtar_common/migrations/0208_unaccent.py
@@ -0,0 +1,17 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.27 on 2020-12-29 11:50
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+from django.contrib.postgres.operations import UnaccentExtension
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('ishtar_common', '0207_auto_20201207_2337'),
+ ]
+
+ operations = [
+ UnaccentExtension()
+ ]
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index c178b187f..807bbc64f 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -1862,6 +1862,14 @@ def get_publisher_label():
return _("Error: publisher type is missing")
+def get_operator_label():
+ if apps.ready:
+ lbl = get_general_type_label(OrganizationType, "operator")
+ if lbl:
+ return lbl
+ return _("Error: operator type is missing")
+
+
class TitleType(GenderedType):
long_title = models.TextField(_("Long title"), default="", blank=True)
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: