diff options
| -rw-r--r-- | ishtar/furnitures/admin.py | 3 | ||||
| -rw-r--r-- | ishtar/furnitures/forms.py | 15 | ||||
| -rw-r--r-- | ishtar/furnitures/urls.py | 3 | ||||
| -rw-r--r-- | ishtar/furnitures/views.py | 9 | 
4 files changed, 26 insertions, 4 deletions
diff --git a/ishtar/furnitures/admin.py b/ishtar/furnitures/admin.py index 980349520..7ffe387fd 100644 --- a/ishtar/furnitures/admin.py +++ b/ishtar/furnitures/admin.py @@ -197,7 +197,8 @@ basic_models = [models.PersonType, models.IshtarUser, models.FileType,                  models.OperationType, models.DatingType, models.DatingQuality,                  models.SourceType, models.MaterialType, models.ParcelOwner,                  models.WarehouseType, models.ActType, models.AuthorType, -                models.OrganizationType, models.TreatmentType, models.RemainType] +                models.OrganizationType, models.TreatmentType, +                models.RemainType, models.PermitType]  if settings.COUNTRY == 'fr':      basic_models += [models.Arrondissement, models.Canton, models.SaisineType] diff --git a/ishtar/furnitures/forms.py b/ishtar/furnitures/forms.py index 9cd49d142..d2bd36794 100644 --- a/ishtar/furnitures/forms.py +++ b/ishtar/furnitures/forms.py @@ -789,13 +789,26 @@ ParcelFormSet.form_label = _("Parcels")  class FileFormPreventive(forms.Form):      form_label = _("Preventive informations")      associated_models = {'general_contractor':models.Person, -                         'saisine_type':models.SaisineType} +                         'saisine_type':models.SaisineType, +                         'permit_type':models.PermitType, +                         'town_planning_service':models.Organization}      general_contractor = forms.IntegerField(label=_(u"General contractor"),              widget=widgets.JQueryAutoComplete(                  reverse_lazy('autocomplete-person',           args=[models.PersonType.objects.get(txt_idx='general_contractor').pk]),                  associated_model=models.Person),              validators=[models.valid_id(models.Person)]) +    town_planning_service = forms.IntegerField(required=False, +            label=_(u"Town planning service"), +            widget=widgets.JQueryAutoComplete( +                reverse_lazy('autocomplete-organization', +     args=[models.OrganizationType.objects.get(txt_idx='planning_service').pk]), +                associated_model=models.Organization), +            validators=[models.valid_id(models.Organization)]) +    permit_type = forms.ChoiceField(label=_("Permit type"), required=False, +                                  choices=models.PermitType.get_types()) +    permit_reference = forms.CharField(label=_(u"Permit reference"), +            required=False, validators=[validators.MaxLengthValidator(60)])      total_developed_surface = forms.IntegerField(                                               label=_("Total developed surface"),                             validators=[validators.MinValueValidator(0), diff --git a/ishtar/furnitures/urls.py b/ishtar/furnitures/urls.py index edbed6c0d..08af1cd42 100644 --- a/ishtar/furnitures/urls.py +++ b/ishtar/furnitures/urls.py @@ -64,7 +64,8 @@ urlpatterns += patterns('ishtar.furnitures.views',                                        name='autocomplete-person'),       url(BASE_URL + r'autocomplete-town/$', 'autocomplete_town',                                        name='autocomplete-town'), -     url(BASE_URL + r'autocomplete-organization/$', 'autocomplete_organization', +     url(BASE_URL + r'autocomplete-organization/([0-9_]+)?$', +                                      'autocomplete_organization',                                        name='autocomplete-organization'),       url(BASE_URL + r'autocomplete-file/$', 'autocomplete_file',                                        name='autocomplete-file'), diff --git a/ishtar/furnitures/views.py b/ishtar/furnitures/views.py index f5bc8b5e4..03029cfe4 100644 --- a/ishtar/furnitures/views.py +++ b/ishtar/furnitures/views.py @@ -142,7 +142,7 @@ def autocomplete_operation(request, non_closed=True):                                            for operation in operations])      return HttpResponse(data, mimetype='text/plain') -def autocomplete_organization(request): +def autocomplete_organization(request, orga_type=None):      if not request.GET.get('term'):          return HttpResponse(mimetype='text/plain')      q = request.GET.get('term') @@ -150,6 +150,13 @@ def autocomplete_organization(request):      for q in q.split(' '):          extra = Q(name__icontains=q)          query = query & extra +    if orga_type: +        try: +            typs = [int(tp) for tp in orga_type.split('_') if tp] +            typ = models.OrganizationType.objects.filter(pk__in=typs).all() +            query = query & Q(organization_type__in=typ) +        except (ValueError, ObjectDoesNotExist): +            pass      limit = 15      organizations = models.Organization.objects.filter(query)[:limit]      data = json.dumps([{'id':org.pk, 'value':unicode(org)}  | 
