summaryrefslogtreecommitdiff
path: root/ishtar_common/views.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2024-02-15 14:49:28 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2024-04-16 16:41:51 +0200
commitc61701ec15bf7b54d49ea0b6cd0fe8ab58bcfabf (patch)
tree563059c10c49dc44b102600d5d94ce40cb2a25bc /ishtar_common/views.py
parent3c5dac4fae65cfa0ce81e948318bdc4d9bd3af49 (diff)
downloadIshtar-c61701ec15bf7b54d49ea0b6cd0fe8ab58bcfabf.tar.bz2
Ishtar-c61701ec15bf7b54d49ea0b6cd0fe8ab58bcfabf.zip
✨ Museum form: manage biographical note
Diffstat (limited to 'ishtar_common/views.py')
-rw-r--r--ishtar_common/views.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index d5b2f369f..bee4d6628 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -1093,6 +1093,28 @@ def autocomplete_author(request):
return HttpResponse(data, content_type="text/plain")
+def autocomplete_biographical_note(request):
+ if not request.user.has_perm("ishtar_common.view_person", models.Person):
+ 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()
+ query = Q()
+ for q in q.split(" "):
+ qu = (
+ Q(last_name__unaccent__icontains=q)
+ | Q(first_name__unaccent__icontains=q)
+ | 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])
+ return HttpResponse(data, content_type="text/plain")
+
+
new_person = new_qa_item(models.Person, forms.PersonForm, page_name=_("New person"),
callback=get_person_gdpr_log)
modify_person = modify_qa_item(models.Person, forms.PersonForm, callback=get_person_gdpr_log)