diff options
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 |
commit | af42287a7a113da28f1f9aab54cfc2e96c9a6d90 (patch) | |
tree | e2ef8db4d09dddaf2d6e7500575a1ee1fa87d2e1 /ishtar_common | |
parent | 9bafeee09b680bc599bfb1664ead9b69a5fd451e (diff) | |
download | Ishtar-af42287a7a113da28f1f9aab54cfc2e96c9a6d90.tar.bz2 Ishtar-af42287a7a113da28f1f9aab54cfc2e96c9a6d90.zip |
Specific form for research archaeology (refs #1682)
Diffstat (limited to 'ishtar_common')
-rw-r--r-- | ishtar_common/models.py | 2 | ||||
-rw-r--r-- | ishtar_common/urls.py | 4 | ||||
-rw-r--r-- | ishtar_common/views.py | 17 |
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') |