diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2026-03-24 17:20:43 +0100 |
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2026-03-25 15:10:38 +0100 |
| commit | 357b31ed1526b0627e1fae90ae261a46ee28e322 (patch) | |
| tree | 8a976135beffab07f1a1b0d3106c96a85b8f916c /ishtar_common/views.py | |
| parent | bd00a0b3db9b795907d709d163f7e8217f7c7671 (diff) | |
| download | Ishtar-357b31ed1526b0627e1fae90ae261a46ee28e322.tar.bz2 Ishtar-357b31ed1526b0627e1fae90ae261a46ee28e322.zip | |
✨ qualified biographical note/site actors - autocomplete forms and actor form
Diffstat (limited to 'ishtar_common/views.py')
| -rw-r--r-- | ishtar_common/views.py | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 545c4a413..4e8376dfc 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -1171,7 +1171,7 @@ def autocomplete_author(request): def autocomplete_biographical_note(request): - query = get_autocomplete_query(request, "ishtar_common", "person") + query = get_autocomplete_query(request, "ishtar_common", "BiographicalNote") if query is None: return HttpResponse("[]", content_type="text/plain") q = request.GET.get("term", "") @@ -1187,8 +1187,31 @@ def autocomplete_biographical_note(request): | Q(denomination__unaccent__icontains=q) ) query = query & qu - users = models.BiographicalNote.objects.filter(query).distinct()[:limit] - data = json.dumps([{"id": user.pk, "value": str(user)} for user in users]) + items = models.BiographicalNote.objects.filter(query).distinct()[:limit] + data = json.dumps([{"id": item.pk, "value": str(item)} for item in items]) + return HttpResponse(data, content_type="text/plain") + + +def autocomplete_qualified_biographical_note(request): + query = get_autocomplete_query(request, "ishtar_common", "QualifiedBiographicalNote") + if query is None: + return HttpResponse("[]", content_type="text/plain") + q = request.GET.get("term", "") + limit = request.GET.get("limit", 20) + try: + limit = int(limit) + except ValueError: + return HttpResponseBadRequest() + for q in q.split(" "): + qu = ( + Q(biographical_note__last_name__unaccent__icontains=q) + | Q(biographical_note__first_name__unaccent__icontains=q) + | Q(biographical_note__denomination__unaccent__icontains=q) + | Q(qualification_type__label__unaccent__icontains=q) + ) + query = query & qu + items = models.QualifiedBiographicalNote.objects.filter(query).distinct()[:limit] + data = json.dumps([{"id": item.pk, "value": str(item)} for item in items]) return HttpResponse(data, content_type="text/plain") @@ -1220,6 +1243,11 @@ new_biographical_note = new_qa_item( models.BiographicalNote, forms.BiographicalNoteForm, page_name=_("New biographical note") ) +new_qualifiedbiographicalnote = new_qa_item( + models.QualifiedBiographicalNote, forms.QualifiedBiographicalNoteForm, + page_name=_("New actor") +) + get_person_for_account = get_item( models.Person, "get_person", |
