summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ishtar/furnitures/admin.py3
-rw-r--r--ishtar/furnitures/forms.py15
-rw-r--r--ishtar/furnitures/urls.py3
-rw-r--r--ishtar/furnitures/views.py9
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)}