summaryrefslogtreecommitdiff
path: root/ishtar_common/views.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2020-06-02 13:18:25 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2021-02-28 12:15:21 +0100
commit9c589216b353924674b4d89b99053ad9f5cf1276 (patch)
tree22f26730c66de9d357f3ceb2f343d6d0cab53b91 /ishtar_common/views.py
parent0984023102759aef68cf53c0ac7b9d15c050c3c4 (diff)
downloadIshtar-9c589216b353924674b4d89b99053ad9f5cf1276.tar.bz2
Ishtar-9c589216b353924674b4d89b99053ad9f5cf1276.zip
Documents form: new fields
Diffstat (limited to 'ishtar_common/views.py')
-rw-r--r--ishtar_common/views.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index 2176c4519..3e5ef48cf 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -729,6 +729,31 @@ def autocomplete_advanced_town(request, department_id=None, state_id=None):
return HttpResponse(data, content_type='text/plain')
+def autocomplete_document(request):
+ if not request.GET.get('term'):
+ return HttpResponse(content_type='text/plain')
+ q = request.GET.get('term')
+ q = unicodedata.normalize("NFKD", q).encode('ascii', 'ignore').decode()
+ fields = ["title__icontains", "reference__icontains",
+ "internal_reference__icontains", "isbn__icontains",
+ "authors__person__cached_label__icontains",
+ "authors_raw__icontains"]
+ query = None
+ for q in q.split(' '):
+ qu = Q(**{fields[0]: q})
+ for field in fields[1:]:
+ qu |= Q(**{field: q})
+ if not query:
+ query = qu
+ else:
+ query = query & qu
+ limit = 20
+ items = models.Document.objects.filter(query)[:limit]
+ data = json.dumps([{'id': item.pk, 'value': str(item)}
+ for item in items])
+ return HttpResponse(data, content_type='text/plain')
+
+
def department_by_state(request, state_id=''):
if not state_id:
data = []