diff options
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) |