summaryrefslogtreecommitdiff
path: root/archaeological_finds/views.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2025-03-13 15:20:36 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2025-03-13 15:48:10 +0100
commit5b19b25aae5b4649ff43e5966e592c76cf90e807 (patch)
tree41620c7c59dbd964cf801a35ed02a15591d63f8d /archaeological_finds/views.py
parentce71f7f286819ee1399fef5f1819f9cc812149a6 (diff)
downloadIshtar-5b19b25aae5b4649ff43e5966e592c76cf90e807.tar.bz2
Ishtar-5b19b25aae5b4649ff43e5966e592c76cf90e807.zip
✨ exhibitions: link documents (refs #6222)
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():