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