diff options
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 |
commit | 8b3347dd635eef93e7af1a71c4183630277a7f5f (patch) | |
tree | 68d54bb40b2006fc2a3d5ae938108e9b950eca59 /ishtar_common/views_item.py | |
parent | 07f24f648504004adbb57b16bd18fbd23a3c3998 (diff) | |
download | Ishtar-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.py | 19 |
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() |