summaryrefslogtreecommitdiff
path: root/ishtar_common/views.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2014-03-02 19:12:07 +0100
committerÉtienne Loks <etienne.loks@peacefrogs.net>2014-03-02 19:12:07 +0100
commitaf42287a7a113da28f1f9aab54cfc2e96c9a6d90 (patch)
treee2ef8db4d09dddaf2d6e7500575a1ee1fa87d2e1 /ishtar_common/views.py
parent9bafeee09b680bc599bfb1664ead9b69a5fd451e (diff)
downloadIshtar-af42287a7a113da28f1f9aab54cfc2e96c9a6d90.tar.bz2
Ishtar-af42287a7a113da28f1f9aab54cfc2e96c9a6d90.zip
Specific form for research archaeology (refs #1682)
Diffstat (limited to 'ishtar_common/views.py')
-rw-r--r--ishtar_common/views.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index ba583438c..7440e0170 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
-# Copyright (C) 2010-2013 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet>
+# Copyright (C) 2010-2014 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet>
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@@ -152,6 +152,21 @@ def autocomplete_person(request, person_types=None):
for person in persons if person])
return HttpResponse(data, mimetype='text/plain')
+def autocomplete_department(request):
+ if not request.GET.get('term'):
+ return HttpResponse(mimetype='text/plain')
+ q = request.GET.get('term')
+ q = unicodedata.normalize("NFKD", q).encode('ascii','ignore')
+ query = Q()
+ for q in q.split(' '):
+ extra = (Q(label__icontains=q) | Q(number__istartswith=q))
+ query = query & extra
+ limit = 20
+ departments = models.Department.objects.filter(query)[:limit]
+ data = json.dumps([{'id':department.pk, 'value':unicode(department)}
+ for department in departments])
+ return HttpResponse(data, mimetype='text/plain')
+
def autocomplete_town(request):
if not request.GET.get('term'):
return HttpResponse(mimetype='text/plain')