From 7a31738e2c5f29258c23da73dd0ccd7b961c19c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Valentin=20Grou=C3=A8s?= <valentin.groues@uni.lu> Date: Mon, 27 Mar 2017 16:09:18 +0200 Subject: [PATCH] app was crashing when adding a visit without end or/and start date --- smash/web/forms.py | 5 ++++- smash/web/tests/test_VisitAddForm.py | 6 ++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/smash/web/forms.py b/smash/web/forms.py index c2ba0089..c4fe0540 100644 --- a/smash/web/forms.py +++ b/smash/web/forms.py @@ -228,9 +228,12 @@ class VisitAddForm(ModelForm): exclude = ['is_finished'] def clean(self): + super(VisitAddForm, self).clean() + if 'datetime_begin' not in self.cleaned_data or 'datetime_end' not in self.cleaned_data: + return if self.cleaned_data['datetime_begin'] >= self.cleaned_data['datetime_end']: self.add_error('datetime_begin', "Start date must be before end date") - self.add_error('datetime_end', "Start date must be before end date") + self.add_error('datetime_end', "End date must be after start date") class KitRequestForm(Form): diff --git a/smash/web/tests/test_VisitAddForm.py b/smash/web/tests/test_VisitAddForm.py index 6eea4e9f..cf3eff33 100644 --- a/smash/web/tests/test_VisitAddForm.py +++ b/smash/web/tests/test_VisitAddForm.py @@ -33,3 +33,9 @@ class SubjectAddFormTests(TestCase): self.assertFalse(validation_status) self.assertTrue("datetime_begin" in form.errors) self.assertTrue("datetime_end" in form.errors) + + def test_invalid_no_dates(self): + self.sample_data.pop('datetime_begin') + form = VisitAddForm(data=self.sample_data) + validation_status = form.is_valid() + self.assertFalse(validation_status) -- GitLab