summaryrefslogtreecommitdiff
path: root/chimere
diff options
context:
space:
mode:
Diffstat (limited to 'chimere')
-rw-r--r--chimere/forms.py12
-rw-r--r--chimere/locale/fr/LC_MESSAGES/django.po18
-rw-r--r--chimere/tests.py15
3 files changed, 33 insertions, 12 deletions
diff --git a/chimere/forms.py b/chimere/forms.py
index bb31ffe..fea99b1 100644
--- a/chimere/forms.py
+++ b/chimere/forms.py
@@ -176,14 +176,16 @@ class MarkerAdminFormBase(forms.ModelForm):
Verify the mandatory properties (to be check manualy because it depends
on the checked categories)
'''
- if not settings.CHIMERE_DAYS_BEFORE_EVENT:
- return self.cleaned_data
- if self.cleaned_data['end_date'] and \
- not self.cleaned_data['start_date']:
+ start_date = self.cleaned_data.get('start_date')
+ end_date = self.cleaned_data.get('end_date')
+ if end_date and not 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']
-
+ if end_date and start_date and start_date > end_date:
+ msg = _(u"End date can't be before start date")
+ self._errors["end_date"] = self.error_class([msg])
+ raise forms.ValidationError(msg)
for pm in self.pms:
if not pm.mandatory or self.cleaned_data[pm.getNamedId()]:
continue
diff --git a/chimere/locale/fr/LC_MESSAGES/django.po b/chimere/locale/fr/LC_MESSAGES/django.po
index b455c56..8066b61 100644
--- a/chimere/locale/fr/LC_MESSAGES/django.po
+++ b/chimere/locale/fr/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 0.2\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-10-17 20:01+0200\n"
+"POT-Creation-Date: 2012-10-26 18:28+0200\n"
"PO-Revision-Date: 2010-03-20 20:00+0100\n"
"Last-Translator: Étienne Loks <etienne.loks@peacefrogs.net>\n"
"MIME-Version: 1.0\n"
@@ -126,30 +126,34 @@ msgstr ""
msgid "You have to set \"source\" or \"source file\"."
msgstr "Vous devez spécifier le champ « Source » ou « Fichier source »."
-#: forms.py:183
+#: forms.py:182
msgid "End date has been set with no start date"
msgstr "Une date de fin a été donnée sans date de début"
-#: forms.py:194
+#: forms.py:186
+msgid "End date can't be before start date"
+msgstr "La date de fin ne peut pas être antérieure à la date de début"
+
+#: forms.py:196
msgid "This field is mandatory for the selected categories"
msgstr "Ce champ est obligatoire pour les catégories sélectionnées"
-#: forms.py:415
+#: forms.py:417
msgid "File"
msgstr "Fichier"
-#: forms.py:421
+#: forms.py:423
msgid "Bad file format: this must be a GPX or KML file"
msgstr "Mauvais format de fichier : KML et GPX sont supportés"
-#: forms.py:426 models.py:51 models.py:106 models.py:127 models.py:140
+#: forms.py:428 models.py:51 models.py:106 models.py:127 models.py:140
#: models.py:155 models.py:271 models.py:575 models.py:618 models.py:661
#: models.py:777 models.py:1093 models.py:1105 models.py:1278 utils.py:454
#: templates/chimere/edit.html:39 templates/chimere/edit_route.html:36
msgid "Name"
msgstr "Nom"
-#: forms.py:435 models.py:1142
+#: forms.py:437 models.py:1142
msgid "Area"
msgstr "Zone"
diff --git a/chimere/tests.py b/chimere/tests.py
index 6417a4f..9be3597 100644
--- a/chimere/tests.py
+++ b/chimere/tests.py
@@ -13,6 +13,7 @@ from django.test import TestCase
from chimere.models import Area, Icon, Importer, Category, SubCategory, Marker,\
Route
+from chimere.forms import MarkerForm
from chimere.utils import ShapefileManager
def area_setup():
@@ -179,3 +180,17 @@ class FeedsTest(TestCase):
doc = lxml.etree.fromstring(response.content)
self.assertEqual(int(doc.xpath('count(//item)')), 2)
+class MarkerFormTest(TestCase):
+ def setUp(self):
+ self.area = area_setup()
+ self.subcategories = subcategory_setup()
+
+ def test_marker_creation(self):
+ current_date = datetime.datetime.now()
+ # end_date before start_date
+ data = {'name':"Marker 1", 'status':'A', 'available_date':current_date,
+ 'point':'SRID=4326;POINT(-4.5 48.4)', 'start_date':current_date,
+ 'end_date':current_date - datetime.timedelta(1),
+ 'categories':[self.subcategories[0].pk]}
+ form = MarkerForm(data)
+ self.assertEqual(form.is_valid(), False)