diff --git a/smash/web/forms.py b/smash/web/forms.py index c2ba00899b0c070b8114a7895b8f3eb6e95a98d0..c4fe054025fc6a62e56b823cc3ca41b192ead232 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 6eea4e9ff337af69e7b2943e1566e6ace697e71b..cf3eff33d9f8ced997d061d10f96b52114165435 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)