summaryrefslogtreecommitdiff
path: root/ishtar/furnitures/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar/furnitures/views.py')
-rw-r--r--ishtar/furnitures/views.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/ishtar/furnitures/views.py b/ishtar/furnitures/views.py
index ba05d0b39..00773bc42 100644
--- a/ishtar/furnitures/views.py
+++ b/ishtar/furnitures/views.py
@@ -26,6 +26,7 @@ from django.http import HttpResponse
from django.template import RequestContext
from django.shortcuts import render_to_response, redirect
from django.utils.translation import ugettext, ugettext_lazy as _
+from django.core.exceptions import ObjectDoesNotExist
from django.db.models import Q
from django.core import serializers
@@ -55,7 +56,7 @@ def check_permission(request, action_slug, obj_id=None):
return menu.items[action_slug].is_available(request.user, obj_id)
return menu.items[action_slug].can_be_available(request.user)
-def autocomplete_person(request):
+def autocomplete_person(request, person_type=None):
if not request.user.has_perm('furnitures.view_person'):
return HttpResponse(mimetype='text/plain')
if not request.GET.get('term'):
@@ -70,6 +71,13 @@ def autocomplete_person(request):
for q in q.split(' '):
query = query & (Q(name__istartswith=q) | Q(surname__istartswith=q) | \
Q(email__icontains=q))
+ if person_type:
+ try:
+ typs = [int(tp) for tp in person_type.split('_') if tp]
+ typ = models.PersonType.objects.filter(pk__in=typs).all()
+ query = query & Q(person_type__in=typ)
+ except (ValueError, ObjectDoesNotExist):
+ pass
limit = 15
persons = models.Person.objects.filter(query)[:limit]
data = json.dumps([{'id':person.pk, 'value':unicode(person)}