diff options
| 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 | 
| commit | c61701ec15bf7b54d49ea0b6cd0fe8ab58bcfabf (patch) | |
| tree | 563059c10c49dc44b102600d5d94ce40cb2a25bc /ishtar_common/views.py | |
| parent | 3c5dac4fae65cfa0ce81e948318bdc4d9bd3af49 (diff) | |
| download | Ishtar-c61701ec15bf7b54d49ea0b6cd0fe8ab58bcfabf.tar.bz2 Ishtar-c61701ec15bf7b54d49ea0b6cd0fe8ab58bcfabf.zip | |
✨ Museum form: manage biographical note
Diffstat (limited to 'ishtar_common/views.py')
| -rw-r--r-- | ishtar_common/views.py | 22 | 
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) | 
