diff options
Diffstat (limited to 'ishtar_common/views.py')
-rw-r--r-- | ishtar_common/views.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 55b5fce1e..e4b55cae2 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -485,6 +485,30 @@ def autocomplete_person_permissive(request, person_types=None, is_ishtar_user=is_ishtar_user, permissive=True) +def autocomplete_user(request): + if not request.user.has_perm('ishtar_common.view_person', models.Person): + return HttpResponse('[]', content_type='text/plain') + q = request.GET.get('term') + limit = request.GET.get('limit', 20) + try: + limit = int(limit) + except ValueError: + return HttpResponseBadRequest() + query = Q() + for q in q.split(' '): + qu = (Q(ishtaruser__person__name__icontains=q) | + Q(ishtaruser__person__surname__icontains=q) | + Q(first_name__icontains=q) | + Q(last_name__icontains=q)) + query = query & qu + users = models.User.objects.filter(query)[:limit] + data = json.dumps([ + {'id': user.pk, + 'value': unicode(user.ishtaruser)} + for user in users if user and user.ishtaruser]) + return HttpResponse(data, content_type='text/plain') + + def autocomplete_person(request, person_types=None, attached_to=None, is_ishtar_user=None, permissive=False): all_items = request.user.has_perm('ishtar_common.view_person', |