diff options
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 |
commit | a589b3ef96c9adf4e408713201ffe7d269e4f78f (patch) | |
tree | 5ad635c7fba5f5d1d1a40a5c5066321c870edfac /ishtar_common/views.py | |
parent | 2b9862d29073e31cc89e807fd355a691b0d932dd (diff) | |
download | Ishtar-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.py | 17 |
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") |