summaryrefslogtreecommitdiff
path: root/chimere/forms.py
diff options
context:
space:
mode:
Diffstat (limited to 'chimere/forms.py')
-rw-r--r--chimere/forms.py43
1 files changed, 37 insertions, 6 deletions
diff --git a/chimere/forms.py b/chimere/forms.py
index b62859c..262ce76 100644
--- a/chimere/forms.py
+++ b/chimere/forms.py
@@ -38,7 +38,7 @@ if hasattr(settings, 'CHIMERE_SEARCH_ENGINE') and \
from chimere.models import Marker, Route, PropertyModel, Area,\
News, Category, RouteFile, MultimediaFile, MultimediaType, \
PictureFile, Importer, PropertyModelChoice, Page, IMPORTER_CHOICES, \
- get_areas_for_user, SubCategoryUserLimit
+ get_areas_for_user, SubCategoryUserLimit, Polygon
from chimere.widgets import AreaField, PointField, TextareaWidget, \
FullTextareaWidget, DatePickerWidget, ButtonSelectWidget, NominatimWidget,\
TextareaAdminWidget, ImportFiltrWidget, ImporterChoicesWidget, RE_XAPI
@@ -369,6 +369,11 @@ MarkerBaseForm = type(
get_properties(PropertyModel.objects.filter(available=True)))
+EXCLUDED_FIELDS = ['status']
+if not settings.CHIMERE_SEARCH_ENGINE:
+ EXCLUDED_FIELDS.append('keywords')
+
+
class MarkerForm(MarkerBaseForm):
"""
Form for the edit page
@@ -376,11 +381,12 @@ class MarkerForm(MarkerBaseForm):
ref_pk = forms.IntegerField(label=u" ", widget=forms.HiddenInput(),
required=False)
description = forms.CharField(widget=TextareaWidget, required=False)
- keywords = forms.CharField(max_length=200, required=False)
+ keywords = forms.CharField(widget=TextareaWidget, max_length=200,
+ required=False)
class Meta:
model = Marker
- exclude = ('status',)
+ exclude = EXCLUDED_FIELDS
widgets = {
'description': TextareaWidget(),
}
@@ -437,10 +443,12 @@ class RouteForm(RouteAdminForm):
widget=forms.HiddenInput)
associated_file_id = forms.CharField(
label=" ", required=False, widget=forms.HiddenInput)
+ keywords = forms.CharField(widget=TextareaWidget, max_length=200,
+ required=False)
class Meta:
model = Route
- exclude = ('status',)
+ exclude = EXCLUDED_FIELDS
def __init__(self, *args, **kwargs):
if kwargs.get('instance'):
@@ -493,6 +501,25 @@ class RouteForm(RouteAdminForm):
return new_route
+class PolygonAdminForm(RouteAdminForm):
+ """
+ Main form for polygon
+ """
+ class Meta:
+ model = Polygon
+
+
+class PolygonForm(PolygonAdminForm):
+ """
+ Form for the edit page
+ """
+ description = forms.CharField(widget=TextareaWidget, required=False)
+
+ class Meta:
+ model = Polygon
+ exclude = EXCLUDED_FIELDS
+
+
class BaseFileForm(forms.ModelForm):
id = forms.IntegerField(label=u"", widget=forms.HiddenInput(),
required=False)
@@ -502,8 +529,9 @@ class BaseFileForm(forms.ModelForm):
raise ImproperlyConfigured
super(BaseFileForm, self).__init__(*args, **kwargs)
self.fields.pop('marker')
+ self.fields.pop('polygon')
- def save(self, associated_marker):
+ def save(self, associated_item):
if not hasattr(self, 'cleaned_data') or not self.cleaned_data:
return
instance = None
@@ -519,7 +547,10 @@ class BaseFileForm(forms.ModelForm):
instance.delete()
return
self.cleaned_data.pop('DELETE')
- self.cleaned_data['marker'] = associated_marker
+ if type(associated_item) == Marker:
+ self.cleaned_data['marker'] = associated_item
+ if type(associated_item) == Polygon:
+ self.cleaned_data['polygon'] = associated_item
if instance:
for k in self.cleaned_data:
setattr(instance, k, self.cleaned_data[k])