diff options
Diffstat (limited to 'chimere/forms.py')
-rw-r--r-- | chimere/forms.py | 50 |
1 files changed, 44 insertions, 6 deletions
diff --git a/chimere/forms.py b/chimere/forms.py index b584f4f..8ce9ad2 100644 --- a/chimere/forms.py +++ b/chimere/forms.py @@ -36,7 +36,8 @@ from chimere.models import Marker, Route, PropertyModel, Property, Area,\ PictureFile, Importer, PropertyModelChoice, IFRAME_LINKS, \ MultimediaExtension, Page from chimere.widgets import AreaField, PointField, TextareaWidget, \ - FullTextareaWidget, DatePickerWidget, ButtonSelectWidget, NominatimWidget + FullTextareaWidget, DatePickerWidget, ButtonSelectWidget, NominatimWidget, \ + TextareaAdminWidget from datetime import timedelta, datetime, tzinfo @@ -113,7 +114,7 @@ class NewsAdminForm(forms.ModelForm): """ Main form for news """ - content = forms.CharField(widget=FullTextareaWidget) + content = forms.CharField(widget=TextareaAdminWidget) class Meta: model = News @@ -125,11 +126,31 @@ class ImporterAdminForm(forms.ModelForm): 'filtr': forms.TextInput(attrs={'size': 80}), } + def clean(self): + ''' + Verify that only one type of source is provided + Verify that shapefiles are zipped + ''' + if self.cleaned_data['importer_type'] == 'SHP' and \ + not self.cleaned_data['zipped']: + raise forms.ValidationError(_(u"Shapefiles must be provided in a "\ + u"zipped archive.")) + if self.cleaned_data['source'] and \ + self.cleaned_data['source_file']: + raise forms.ValidationError(_(u"You have to set \"source\" or " + u"\"source file\" but not both.")) + if not self.cleaned_data['source'] and \ + not self.cleaned_data['source_file'] and \ + self.cleaned_data['importer_type'] != 'OSM': + raise forms.ValidationError(_(u"You have to set \"source\" or " + u"\"source file\".")) + return self.cleaned_data + class CategoryAdminForm(forms.ModelForm): """ Main form for categories """ - description = forms.CharField(widget=TextareaWidget, required=False) + description = forms.CharField(widget=TextareaAdminWidget, required=False) class Media: js = list(settings.JQUERY_JS_URLS) + [ '%schimere/js/menu-sort.js' % settings.STATIC_URL, @@ -141,7 +162,7 @@ class MarkerAdminFormBase(forms.ModelForm): """ Main form for marker """ - description = forms.CharField(widget=TextareaWidget, required=False) + description = forms.CharField(widget=TextareaAdminWidget, required=False) class Meta: model = Marker @@ -246,6 +267,7 @@ class MarkerForm(MarkerBaseForm): """ ref_pk = forms.IntegerField(label=u" ", widget=forms.HiddenInput(), required=False) + description = forms.CharField(widget=TextareaWidget, required=False) class Meta: model = Marker exclude = ('status',) @@ -348,7 +370,6 @@ class RouteForm(RouteAdminForm): new_marker.saveProperties(properties) return new_route - class BaseFileForm(forms.ModelForm): id = forms.IntegerField(label=u"", widget=forms.HiddenInput(), required=False) @@ -383,6 +404,14 @@ class BaseFileForm(forms.ModelForm): else: instance = self._meta.model.objects.create(**self.cleaned_data) +class MultimediaFileAdminForm(forms.ModelForm): + class Meta: + model = MultimediaFile + class Media: + js = list(settings.JQUERY_JS_URLS) + [ + '%schimere/js/menu-sort.js' % settings.STATIC_URL, + ] + class MultimediaFileForm(BaseFileForm): """ Form for a multimedia file @@ -425,6 +454,14 @@ class MultimediaFileForm(BaseFileForm): MultimediaFileFormSet = formset_factory(MultimediaFileForm, can_delete=True) +class PictureFileAdminForm(forms.ModelForm): + class Meta: + model = PictureFile + class Media: + js = list(settings.JQUERY_JS_URLS) + [ + '%schimere/js/menu-sort.js' % settings.STATIC_URL, + ] + class PictureFileForm(BaseFileForm): """ Form for a picture file @@ -459,7 +496,8 @@ class AreaAdminForm(forms.ModelForm): Admin page to create an area """ area = AreaField(label=_("Area"), fields=(PointField(), PointField())) - welcome_message = forms.CharField(widget=TextareaWidget, required=False) + welcome_message = forms.CharField(widget=TextareaAdminWidget, + required=False) class Meta: model = Area |