diff options
author | Étienne Loks <etienne.loks@proxience.com> | 2014-12-12 16:07:39 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@proxience.com> | 2014-12-12 16:07:39 +0100 |
commit | d0eaa4529f02cea7aa7939ea397f903b3f7d0a5e (patch) | |
tree | c9ff24219dcb5bb3b1ec0dc67f322d9e1163728b | |
parent | 8baf507270946930fba9152793c6991d72b2f2fd (diff) | |
download | Ishtar-d0eaa4529f02cea7aa7939ea397f903b3f7d0a5e.tar.bz2 Ishtar-d0eaa4529f02cea7aa7939ea397f903b3f7d0a5e.zip |
Archaeological files: autocomplete also search by address and year-index (refs #2066)
-rw-r--r-- | archaeological_files/views.py | 11 | ||||
-rw-r--r-- | archaeological_operations/views.py | 3 |
2 files changed, 11 insertions, 3 deletions
diff --git a/archaeological_files/views.py b/archaeological_files/views.py index 8498352cf..bd91c1040 100644 --- a/archaeological_files/views.py +++ b/archaeological_files/views.py @@ -17,7 +17,7 @@ # See the file COPYING for details. -import json +import json, re from django.core.urlresolvers import reverse from django.db.models import Q @@ -41,6 +41,8 @@ from forms import * from archaeological_operations.views import generatedoc_administrativeactop +RE_YEAR_INDEX = re.compile(r"([1-2][0-9]{3})-([0-9]+)") # eg.: 2014-123 + def autocomplete_file(request): if not request.user.has_perm('ishtar_common.view_file', models.File) and \ not request.user.has_perm('ishtar_common.view_own_file', models.File) \ @@ -52,12 +54,17 @@ def autocomplete_file(request): query = Q() for q in q.split(' '): extra = Q(internal_reference__icontains=q) | \ - Q(towns__name__icontains=q) + Q(towns__name__icontains=q) | \ + Q(address__icontains=q) try: value = int(q) extra = extra | Q(year=q) | Q(numeric_reference=q) except ValueError: pass + m = RE_YEAR_INDEX.match(q) + if m: + yr, idx = m.groups() + extra = extra | Q(year=yr, numeric_reference=idx) query = query & extra limit = 20 files = models.File.objects.filter(query)[:limit] diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py index 5e6385de7..182ae115e 100644 --- a/archaeological_operations/views.py +++ b/archaeological_operations/views.py @@ -49,7 +49,8 @@ def autocomplete_patriarche(request, non_closed=True): if non_closed: query = query & Q(end_date__isnull=True) limit = 15 - operations = models.Operation.objects.filter(query).order_by('code_patriarche')[:limit] + operations = models.Operation.objects.filter(query + ).order_by('code_patriarche')[:limit] data = json.dumps([{'id':operation.code_patriarche, 'value':operation.code_patriarche} for operation in operations]) |