diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2026-03-04 18:27:21 +0100 |
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2026-03-10 11:11:46 +0100 |
| commit | 07cea621a56143b5685cff59a2c6273631b858bc (patch) | |
| tree | a53410f556bc96aa61b3c4b315ca826ec63c83a7 /archaeological_finds | |
| parent | 25f41c5e951a403056c11ac36f52252ab2d5d85c (diff) | |
| download | Ishtar-07cea621a56143b5685cff59a2c6273631b858bc.tar.bz2 Ishtar-07cea621a56143b5685cff59a2c6273631b858bc.zip | |
🚧 Statement condition - document: views, urls
Diffstat (limited to 'archaeological_finds')
| -rw-r--r-- | archaeological_finds/urls.py | 10 | ||||
| -rw-r--r-- | archaeological_finds/views.py | 33 |
2 files changed, 43 insertions, 0 deletions
diff --git a/archaeological_finds/urls.py b/archaeological_finds/urls.py index 9a573198c..d1520d4ba 100644 --- a/archaeological_finds/urls.py +++ b/archaeological_finds/urls.py @@ -641,6 +641,11 @@ urlpatterns = [ name="autocomplete-exhibition", ), re_path( + r"autocomplete-statementcondition/$", + views.autocomplete_statementcondition, + name="autocomplete-statementcondition", + ), + re_path( r"get-find-for-ope/own/(?P<type>.+)?$", views.get_find_for_ope, name="get-own-find-for-ope", @@ -858,6 +863,11 @@ urlpatterns = [ ), name="find-statement-condition-delete", ), + re_path( + r"^show-statementcondition/(?:(?P<pk>.+)/(?P<type>.+)?)?$", + views.show_statementcondition, + name="show-statementcondition", + ), ] urlpatterns += get_urls_for_model(models.Find, views, own=True, autocomplete=True) 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: |
