summaryrefslogtreecommitdiff
path: root/chimere/forms.py
diff options
context:
space:
mode:
Diffstat (limited to 'chimere/forms.py')
-rw-r--r--chimere/forms.py33
1 files changed, 28 insertions, 5 deletions
diff --git a/chimere/forms.py b/chimere/forms.py
index 312512e..55bb57a 100644
--- a/chimere/forms.py
+++ b/chimere/forms.py
@@ -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'):
@@ -501,6 +509,17 @@ class PolygonAdminForm(RouteAdminForm):
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)
@@ -510,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
@@ -527,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])