diff options
Diffstat (limited to 'chimere/forms.py')
-rw-r--r-- | chimere/forms.py | 33 |
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]) |