diff options
Diffstat (limited to 'ishtar_common')
| -rw-r--r-- | ishtar_common/urls.py | 3 | ||||
| -rw-r--r-- | ishtar_common/views.py | 17 | 
2 files changed, 16 insertions, 4 deletions
| diff --git a/ishtar_common/urls.py b/ishtar_common/urls.py index eb0fe7ac2..70109a2f3 100644 --- a/ishtar_common/urls.py +++ b/ishtar_common/urls.py @@ -103,6 +103,9 @@ urlpatterns += patterns(          'new_person_noorga', name='new-person-noorga'),      url(r'autocomplete-person(?:/([0-9_]+))?(?:/([0-9_]*))?/(user)?$',          'autocomplete_person', name='autocomplete-person'), +    url(r'autocomplete-person-permissive(?:/([0-9_]+))?(?:/([0-9_]*))?' +        r'/(user)?$', 'autocomplete_person_permissive', +        name='autocomplete-person-permissive'),      url(r'get-person/(?P<type>.+)?$', 'get_person',          name='get-person'),      url(r'show-person(?:/(?P<pk>.+))?/(?P<type>.+)?$', diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 819c88f32..ac29236ff 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -171,8 +171,14 @@ def check_permission(request, action_slug, obj_id=None):      return menu.items[action_slug].can_be_available(request.user) +def autocomplete_person_permissive(request, person_types=None, attached_to=None, +                                   is_ishtar_user=None): +    return autocomplete_person(request, person_types=person_types, attached_to=attached_to, +                               is_ishtar_user=is_ishtar_user, permissive=True) + +  def autocomplete_person(request, person_types=None, attached_to=None, -                        is_ishtar_user=None): +                        is_ishtar_user=None, permissive=False):      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'): @@ -187,9 +193,11 @@ def autocomplete_person(request, person_types=None, attached_to=None,          return HttpResponseBadRequest()      query = Q()      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)) +        qu = (Q(name__icontains=q) | Q(surname__icontains=q) | +              Q(email__icontains=q) | Q(attached_to__name__icontains=q)) +        if permissive: +            qu = qu | Q(raw_name__icontains=q) +        query = query & qu      if attached_to:          query = query & Q(attached_to__pk__in=attached_to.split('_')) @@ -837,6 +845,7 @@ get_organization = get_item(      })  new_author = new_item(models.Author, forms.AuthorForm)  show_person = show_item(models.Person, 'person') +  get_person = get_item(      models.Person,      'get_person', 'person', | 
