diff options
Diffstat (limited to 'chimere')
| -rw-r--r-- | chimere/forms.py | 12 | ||||
| -rw-r--r-- | chimere/locale/fr/LC_MESSAGES/django.po | 18 | ||||
| -rw-r--r-- | chimere/tests.py | 15 |
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) |
