summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@proxience.com>2014-05-15 17:24:25 +0200
committerÉtienne Loks <etienne.loks@proxience.com>2014-05-15 17:24:25 +0200
commitb57ca5cc8df37b918ed08fd055959b695ae81e25 (patch)
tree1be45fd158a1a3c0efeb54597c64f8404dc4db0e /ishtar_common
parent9f611a2c8371c6de019f35c5b29d0563fc4718f4 (diff)
downloadIshtar-b57ca5cc8df37b918ed08fd055959b695ae81e25.tar.bz2
Ishtar-b57ca5cc8df37b918ed08fd055959b695ae81e25.zip
Created by search (refs #1590)
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/urls.py2
-rw-r--r--ishtar_common/views.py7
2 files changed, 6 insertions, 3 deletions
diff --git a/ishtar_common/urls.py b/ishtar_common/urls.py
index 61e030ef9..94e50d161 100644
--- a/ishtar_common/urls.py
+++ b/ishtar_common/urls.py
@@ -67,7 +67,7 @@ urlpatterns += patterns('ishtar_common.views',
name='update-current-item'),
url(r'new-person/(?P<parent_name>.+)?/$',
'new_person', name='new-person'),
- url(r'autocomplete-person/([0-9_]+)?$', 'autocomplete_person',
+ url(r'autocomplete-person(?:/([0-9_]+))?/(user)?$', 'autocomplete_person',
name='autocomplete-person'),
url(r'get-person/(?P<type>.+)?$', 'get_person',
name='get-person'),
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index 4fc56f862..e9c2a0c1c 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -134,7 +134,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, person_types=None):
+def autocomplete_person(request, person_types=None, is_ishtar_user=None):
if not request.user.has_perm('ishtar_common.view_person', models.Person) and \
not request.user.has_perm('ishtar_common.view_own_person', models.Person) \
and not request.user.ishtaruser.has_right('person_search'):
@@ -151,15 +151,18 @@ def autocomplete_person(request, person_types=None):
for q in q.split(' '):
query = query & (Q(name__icontains=q) | Q(surname__icontains=q) | \
Q(email__icontains=q) | Q(attached_to__name__icontains=q))
- if person_types:
+ if person_types and unicode(person_types) != '0':
try:
typs = [int(tp) for tp in person_types.split('_') if tp]
typ = models.PersonType.objects.filter(pk__in=typs).all()
query = query & Q(person_types__in=typ)
except (ValueError, ObjectDoesNotExist):
pass
+ if is_ishtar_user:
+ query = query & Q(ishtaruser__isnull=False)
limit = 20
persons = models.Person.objects.filter(query)[:limit]
+ print persons.query
data = json.dumps([{'id':person.pk, 'value':unicode(person)}
for person in persons if person])
return HttpResponse(data, mimetype='text/plain')