summaryrefslogtreecommitdiff
path: root/ishtar_common/views.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2023-04-18 17:21:38 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2023-04-18 17:21:38 +0200
commita589b3ef96c9adf4e408713201ffe7d269e4f78f (patch)
tree5ad635c7fba5f5d1d1a40a5c5066321c870edfac /ishtar_common/views.py
parent2b9862d29073e31cc89e807fd355a691b0d932dd (diff)
downloadIshtar-a589b3ef96c9adf4e408713201ffe7d269e4f78f.tar.bz2
Ishtar-a589b3ef96c9adf4e408713201ffe7d269e4f78f.zip
Document -> Town/Area: models, admin, forms
Diffstat (limited to 'ishtar_common/views.py')
-rw-r--r--ishtar_common/views.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index ba205abf3..b469df12d 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -823,6 +823,23 @@ def autocomplete_person(
return HttpResponse(data, content_type="text/plain")
+def autocomplete_area(request):
+ if not request.GET.get("term"):
+ return HttpResponse("[]", content_type="text/plain")
+ q = request.GET.get("term")
+ q = unicodedata.normalize("NFKD", q).encode("ascii", "ignore").decode()
+ query = Q()
+ for q in q.split(" "):
+ extra = Q(label__icontains=q)
+ query = query & extra
+ limit = 20
+ areas = models.Area.objects.filter(query).distinct()[:limit]
+ data = json.dumps(
+ [{"id": area.pk, "value": str(area)} for area in areas]
+ )
+ return HttpResponse(data, content_type="text/plain")
+
+
def autocomplete_department(request):
if not request.GET.get("term"):
return HttpResponse("[]", content_type="text/plain")