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