summaryrefslogtreecommitdiff
path: root/ishtar_common/views.py
diff options
context:
space:
mode:
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')