summaryrefslogtreecommitdiff
path: root/archaeological_finds/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_finds/views.py')
-rw-r--r--archaeological_finds/views.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py
index f0f1fe4e1..e370c0a87 100644
--- a/archaeological_finds/views.py
+++ b/archaeological_finds/views.py
@@ -200,6 +200,30 @@ def autocomplete_treatmentfile(request):
return HttpResponse(data, content_type="text/plain")
+def autocomplete_exhibition(request):
+ query = get_autocomplete_query(request, "archaeological_finds", "exhibition")
+ if query is None:
+ return HttpResponse(content_type="text/plain")
+ if not request.GET.get("term"):
+ return HttpResponse(content_type="text/plain")
+ q = request.GET.get("term")
+ for q1 in q.split(" "):
+ for q in q1.split(" "):
+ extra = (
+ Q(reference__icontains=q)
+ | Q(name__icontains=q)
+ )
+ try:
+ extra = extra | Q(year=int(q))
+ except ValueError:
+ pass
+ query = query & extra
+ limit = 20
+ items = models.Exhibition.objects.filter(query)[:limit]
+ data = json.dumps([{"id": item.pk, "value": str(item)} for item in items])
+ return HttpResponse(data, content_type="text/plain")
+
+
def show_basefind(request, pk, **dct):
q = models.Find.objects.filter(base_finds__pk=pk, downstream_treatment__isnull=True)
if not q.count():