summaryrefslogtreecommitdiff
path: root/chimere/forms.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2012-10-14 16:55:22 +0200
committerÉtienne Loks <etienne.loks@peacefrogs.net>2012-10-14 16:55:22 +0200
commitea65e5512c236b81e7f4b8757521facadae4b3b8 (patch)
tree739cdf40fb6a89de90c4189936d695288a82849f /chimere/forms.py
parent4b0f0777c434f5fa1366ca408c34d257d4833fad (diff)
parenta55f77a246f99764ff6289686f80825526654e2b (diff)
downloadChimère-ea65e5512c236b81e7f4b8757521facadae4b3b8.tar.bz2
Chimère-ea65e5512c236b81e7f4b8757521facadae4b3b8.zip
Merge branch 'master' into saclay
Conflicts: chimere/admin.py chimere/fixtures/initial_data.json chimere/forms.py chimere/locale/fr/LC_MESSAGES/django.po chimere/models.py chimere/static/chimere/css/styles.css chimere/templates/chimere/detail.html chimere/templatetags/chimere_tags.py chimere/views.py chimere/widgets.py
Diffstat (limited to 'chimere/forms.py')
-rw-r--r--chimere/forms.py50
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