diff options
| -rw-r--r-- | archaeological_files/forms.py | 14 | ||||
| -rw-r--r-- | archaeological_files/views.py | 1 | ||||
| -rw-r--r-- | archaeological_operations/forms.py | 14 | ||||
| -rw-r--r-- | ishtar_common/urls.py | 2 | ||||
| -rw-r--r-- | ishtar_common/views.py | 7 | 
5 files changed, 35 insertions, 3 deletions
| diff --git a/archaeological_files/forms.py b/archaeological_files/forms.py index 0879f428e..0aab8d370 100644 --- a/archaeological_files/forms.py +++ b/archaeological_files/forms.py @@ -80,6 +80,13 @@ class FileSelect(TableSelect):                  args=[PersonType.objects.get(txt_idx='sra_agent').pk]),                  associated_model=Person),              validators=[valid_id(Person)]) +    history_creator = forms.IntegerField( +            label=_(u"Created by"), +            widget=widgets.JQueryAutoComplete( +                reverse_lazy('autocomplete-person', +                args=['0', 'user']), +                associated_model=Person), +            validators=[valid_id(Person)])      permit_reference = forms.CharField(max_length=200,                                         label=_("Permit reference")) @@ -318,6 +325,13 @@ class AdministrativeActFileSelect(TableSelect):              validators=[valid_id(Person)])      associated_file__permit_reference = forms.CharField(max_length=200,                                             label=_("Permit reference")) +    history_creator = forms.IntegerField( +            label=_(u"Created by"), +            widget=widgets.JQueryAutoComplete( +                reverse_lazy('autocomplete-person', +                args=['0', 'user']), +                associated_model=Person), +            validators=[valid_id(Person)])      def __init__(self, *args, **kwargs):          super(AdministrativeActFileSelect, self).__init__(*args, **kwargs) diff --git a/archaeological_files/views.py b/archaeological_files/views.py index 4f767b4c9..b57a4cf6b 100644 --- a/archaeological_files/views.py +++ b/archaeological_files/views.py @@ -109,6 +109,7 @@ file_search_wizard = SearchWizard.as_view(                              [('general-file_search', FileFormSelection)],                              label=_(u"File search"),                              url_name='file_search',) +  file_creation_wizard = FileWizard.as_view([                              ('general-file_creation', FileFormGeneral),                              ('towns-file_creation', TownFormset), diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py index 11055ccfb..4473d7858 100644 --- a/archaeological_operations/forms.py +++ b/archaeological_operations/forms.py @@ -228,6 +228,13 @@ class OperationSelect(TableSelect):                                  widget=widgets.JQueryDate)      parcel = ParcelField(label=_("Parcel (section/number)"))      end_date = forms.NullBooleanField(label=_(u"Is open?")) +    history_creator = forms.IntegerField( +            label=_(u"Created by"), +            widget=widgets.JQueryAutoComplete( +                reverse_lazy('autocomplete-person', +                args=['0', 'user']), +                associated_model=Person), +            validators=[valid_id(Person)])      def __init__(self, *args, **kwargs):          super(OperationSelect, self).__init__(*args, **kwargs) @@ -648,6 +655,13 @@ class AdministrativeActOpeSelect(TableSelect):                                    max_length=15)      act_type = forms.ChoiceField(label=_("Act type"), choices=[])      operation__towns = get_town_field() +    history_creator = forms.IntegerField( +            label=_(u"Created by"), +            widget=widgets.JQueryAutoComplete( +                reverse_lazy('autocomplete-person', +                args=['0', 'user']), +                associated_model=Person), +            validators=[valid_id(Person)])      def __init__(self, *args, **kwargs):          super(AdministrativeActOpeSelect, self).__init__(*args, **kwargs) 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') | 
