summaryrefslogtreecommitdiff
path: root/ishtar_common
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
parent9bafeee09b680bc599bfb1664ead9b69a5fd451e (diff)
downloadIshtar-af42287a7a113da28f1f9aab54cfc2e96c9a6d90.tar.bz2
Ishtar-af42287a7a113da28f1f9aab54cfc2e96c9a6d90.zip
Specific form for research archaeology (refs #1682)
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/models.py2
-rw-r--r--ishtar_common/urls.py4
-rw-r--r--ishtar_common/views.py17
3 files changed, 20 insertions, 3 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index d91d62995..5bebaa59e 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -689,7 +689,7 @@ class Department(models.Model):
ordering = ['number']
def __unicode__(self):
- return unicode(self.number) + settings.JOINT + self.label
+ return u"%s (%s)" % (self.label, self.number)
class Address(BaseHistorizedItem):
address = models.TextField(_(u"Address"), null=True, blank=True)
diff --git a/ishtar_common/urls.py b/ishtar_common/urls.py
index 6afd8073d..ab47e82b7 100644
--- a/ishtar_common/urls.py
+++ b/ishtar_common/urls.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
@@ -71,6 +71,8 @@ urlpatterns += patterns('ishtar_common.views',
'show_person', name='show-person'),
url(r'autocomplete-town/?$', 'autocomplete_town',
name='autocomplete-town'),
+ url(r'autocomplete-department/?$', 'autocomplete_department',
+ name='autocomplete-department'),
url(r'new-author/(?P<parent_name>.+)?/$',
'new_author', name='new-author'),
url(r'autocomplete-author/$', 'autocomplete_author',
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')