summaryrefslogtreecommitdiff
path: root/archaeological_operations/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_operations/views.py')
-rw-r--r--archaeological_operations/views.py33
1 files changed, 31 insertions, 2 deletions
diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py
index 897302828..0c3dc28a1 100644
--- a/archaeological_operations/views.py
+++ b/archaeological_operations/views.py
@@ -84,7 +84,7 @@ def autocomplete_archaeologicalsite(request):
query = query & qt
limit = 15
sites = models.ArchaeologicalSite.objects.filter(
- query).order_by('reference')[:limit]
+ query).distinct().order_by('reference')[:limit]
data = json.dumps([{'id': site.pk,
'value': str(site)[:60]}
for site in sites])
@@ -125,7 +125,7 @@ def autocomplete_operation(request):
pass
query = query & extra
limit = 15
- operations = models.Operation.objects.filter(query)[:limit]
+ operations = models.Operation.objects.filter(query).distinct()[:limit]
data = json.dumps([{'id': operation.pk, 'value': str(operation)}
for operation in operations])
return HttpResponse(data, content_type='text/plain')
@@ -566,6 +566,35 @@ def administrativeactfile_document(
return render(request, 'ishtar/administrativeact_document.html', dct)
+def autocomplete_administrativeact(request):
+ if (not request.user.has_perm(
+ 'archaeological_operations.view_administrativeact',
+ models.AdministrativeAct)
+ and not request.user.has_perm(
+ 'archaeological_operations.view_own_administrativeact',
+ models.AdministrativeAct)):
+ return HttpResponse(content_type='text/plain')
+ if not request.GET.get('term'):
+ return HttpResponse(content_type='text/plain')
+ q = request.GET.get('term')
+ query = Q()
+ for q in q.split(' '):
+ qt = Q(act_type__label__icontains=q) | Q(towns_label=q)
+ try:
+ if len(q) == 4:
+ qt |= Q(year=int(q))
+ qt |= Q(index=int(q))
+ except ValueError:
+ pass
+ query = query & qt
+ limit = 15
+ items = models.AdministrativeAct.objects.filter(
+ query).order_by('year', 'index').distinct()[:limit]
+ data = json.dumps([{'id': item.pk, 'value': str(item)[:80] + " (...)"}
+ for item in items])
+ return HttpResponse(data, content_type='text/plain')
+
+
def reset_wizards(request):
for wizard_class, url_name in (
(wizards.OperationWizard, 'operation_creation'),