summaryrefslogtreecommitdiff
path: root/ishtar_common/views_item.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2018-06-07 16:52:02 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2018-06-12 10:46:13 +0200
commit8b3347dd635eef93e7af1a71c4183630277a7f5f (patch)
tree68d54bb40b2006fc2a3d5ae938108e9b950eca59 /ishtar_common/views_item.py
parent07f24f648504004adbb57b16bd18fbd23a3c3998 (diff)
downloadIshtar-8b3347dd635eef93e7af1a71c4183630277a7f5f.tar.bz2
Ishtar-8b3347dd635eef93e7af1a71c4183630277a7f5f.zip
Document form: add related fields (refs #4107)
Diffstat (limited to 'ishtar_common/views_item.py')
-rw-r--r--ishtar_common/views_item.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py
index eef3440bc..4be1ec144 100644
--- a/ishtar_common/views_item.py
+++ b/ishtar_common/views_item.py
@@ -53,6 +53,25 @@ CURRENT_ITEM_KEYS = (('file', File),
CURRENT_ITEM_KEYS_DICT = dict(CURRENT_ITEM_KEYS)
+def get_autocomplete_item(model, extra=None):
+ if not extra:
+ extra = {}
+
+ def func(request, current_right=None):
+ q = request.GET.get('term') or ""
+ query = Q(**extra)
+ for q in q.split(' '):
+ if not q:
+ continue
+ query = query & Q(cached_label__icontains=q)
+ limit = 20
+ objects = model.objects.filter(query)[:limit]
+ data = json.dumps([{'id': obj.pk, 'value': obj.cached_label}
+ for obj in objects])
+ return HttpResponse(data, content_type='text/plain')
+ return func
+
+
def check_permission(request, action_slug, obj_id=None):
MAIN_MENU = Menu(None)
MAIN_MENU.init()