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)} |