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.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py
index 96b60587a..e294b4c6b 100644
--- a/archaeological_finds/views.py
+++ b/archaeological_finds/views.py
@@ -225,6 +225,31 @@ def autocomplete_exhibition(request):
return HttpResponse(data, content_type="text/plain")
+def autocomplete_statementcondition(request):
+ query = get_autocomplete_query(request, "archaeological_finds", "statementcondition")
+ 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(campaign_number__icontains=q)
+ | Q(report_number__icontains=q)
+ | Q(find__cached_label__icontains=q)
+ )
+ try:
+ extra = extra | Q(date__year=int(q))
+ except ValueError:
+ pass
+ query = query & extra
+ limit = 20
+ items = models.StatementCondition.objects.filter(query).exclude(initial=True)[: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():
@@ -1522,6 +1547,14 @@ def qa_gam_export_views(request, pk, *args, **kwargs):
return render(request, "ishtar/forms/qa_form.html", dct)
+def show_statementcondition(request, pk, **dct):
+ q = models.StatementCondition.objects.filter(pk=pk)
+ if not q.count():
+ return Http404()
+ find_pk = q.values_list("find_id", flat=True)[0]
+ return show_item(models.Find, "find")(request, find_pk, **dct)
+
+
def statement_condition_form(request, find_pk, statement_condition_pk=None,
current_right=None):
try: