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 | 875462381bc57b13a8ca6b68a52ad1ca065ef95e (patch) | |
| tree | 68d54bb40b2006fc2a3d5ae938108e9b950eca59 /ishtar_common/views_item.py | |
| parent | fdd0231543be132b846e3bf12127cd01860f55bf (diff) | |
| download | Ishtar-875462381bc57b13a8ca6b68a52ad1ca065ef95e.tar.bz2 Ishtar-875462381bc57b13a8ca6b68a52ad1ca065ef95e.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() | 
