diff options
-rw-r--r-- | ishtar/furnitures/forms.py | 7 | ||||
-rw-r--r-- | ishtar/furnitures/urls.py | 2 | ||||
-rw-r--r-- | ishtar/furnitures/views.py | 10 |
3 files changed, 14 insertions, 5 deletions
diff --git a/ishtar/furnitures/forms.py b/ishtar/furnitures/forms.py index 5f1b0beb8..ac303a473 100644 --- a/ishtar/furnitures/forms.py +++ b/ishtar/furnitures/forms.py @@ -442,9 +442,10 @@ class FileFormGeneral(forms.Form): associated_models = {'in_charge':models.Person, 'file_type':models.FileType} in_charge = forms.IntegerField(label=_("Person in charge"), - widget=widgets.JQueryAutoComplete(reverse_lazy('autocomplete-person'), - associated_model=models.Person), - validators=[models.valid_id(models.Person)]) + widget=widgets.JQueryAutoComplete(reverse_lazy('autocomplete-person', + args=[models.PersonType.objects.get(txt_idx='sra_agent').pk]), + associated_model=models.Person), + validators=[models.valid_id(models.Person)]) year = forms.IntegerField(label=_("Year"), initial=lambda:datetime.datetime.now().year, validators=[validators.MinValueValidator(1900), diff --git a/ishtar/furnitures/urls.py b/ishtar/furnitures/urls.py index 762aa135f..b7ff515af 100644 --- a/ishtar/furnitures/urls.py +++ b/ishtar/furnitures/urls.py @@ -39,7 +39,7 @@ actions = r"|".join(actions) urlpatterns += patterns('ishtar.furnitures.views', url(BASE_URL + r'(?P<action_slug>' + actions + r')/$', 'action', name='action'), - url(BASE_URL + r'autocomplete-persone/$', 'autocomplete_person', + url(BASE_URL + r'autocomplete-persone/([0-9_]+)?$', 'autocomplete_person', name='autocomplete-person'), url(BASE_URL + r'autocomplete-town/$', 'autocomplete_town', name='autocomplete-town'), 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)} |