summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2010-11-19 00:52:08 +0100
committerÉtienne Loks <etienne.loks@peacefrogs.net>2010-11-19 00:52:08 +0100
commit005b59d77fbb07900209afacc31c0f39f4f40d0d (patch)
treed33afe28ff3792dd96c286816bb0df852c0a0302
parent0cea4a3c6b265b8d68aa5104583e80b76cc9d5ec (diff)
downloadChimère-005b59d77fbb07900209afacc31c0f39f4f40d0d.tar.bz2
Chimère-005b59d77fbb07900209afacc31c0f39f4f40d0d.zip
Verify that a start date is provided when an end date is set (refs #270)
-rw-r--r--chimere/main/forms.py13
-rw-r--r--chimere/settings.py.example3
2 files changed, 16 insertions, 0 deletions
diff --git a/chimere/main/forms.py b/chimere/main/forms.py
index c3cd810..76a2a17 100644
--- a/chimere/main/forms.py
+++ b/chimere/main/forms.py
@@ -116,6 +116,19 @@ required=False)' % (property.order, property.id, property.name,
self.fields['start_date'].widget = AdminDateWidget()
self.fields['end_date'].widget = AdminDateWidget()
+ def clean(self):
+ '''
+ Verify that a start date is provided when an end date is set
+ '''
+ if not settings.DAYS_BEFORE_EVENT:
+ return self.cleaned_data
+ if self.cleaned_data['end_date'] and \
+ not self.cleaned_data['start_date']:
+ msg = _(u"End date has been set with no start date")
+ self._errors["end_date"] = self.error_class([msg])
+ del self.cleaned_data['end_date']
+ return self.cleaned_data
+
def save(self, *args, **keys):
"""
Custom save method in order to manage associeted properties
diff --git a/chimere/settings.py.example b/chimere/settings.py.example
index ebb4fc5..d59d119 100644
--- a/chimere/settings.py.example
+++ b/chimere/settings.py.example
@@ -33,6 +33,9 @@ DISPLAY_AREAS = True
CSS_AREAS = True
# number of day before an event to display
# if equal to 0: disable event management
+# if you change this value from 0 to a value in a production environnement
+# don't forget to run the upgrade.py script to create appropriate fields in
+# the database
DAYS_BEFORE_EVENT = 30
# default id category to check on the map