From 15756ed90d0bee21428bbaf22767cbfba12b671e Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Tue, 31 Oct 2017 14:38:00 +0100 Subject: [PATCH] validation of nd number added --- smash/web/models/subject.py | 5 ++++- smash/web/tests/forms/test_SubjectAddForm.py | 2 +- smash/web/tests/forms/test_SubjectEditForm.py | 10 +++++----- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/smash/web/models/subject.py b/smash/web/models/subject.py index c16e7330..ab779e00 100644 --- a/smash/web/models/subject.py +++ b/smash/web/models/subject.py @@ -1,4 +1,5 @@ # coding=utf-8 +from django.core.validators import RegexValidator from django.db import models from constants import BOOL_CHOICES, SEX_CHOICES, SUBJECT_TYPE_CHOICES, COUNTRY_OTHER_ID @@ -124,7 +125,9 @@ class Subject(models.Model): ) nd_number = models.CharField(max_length=25, blank=True, - verbose_name='ND number' + verbose_name='ND number', + validators=[ + RegexValidator('^(ND[0-9]{4}|)$', message="ND number should look as follows: NDxxxx")] ) mpower_id = models.CharField(max_length=20, blank=True, diff --git a/smash/web/tests/forms/test_SubjectAddForm.py b/smash/web/tests/forms/test_SubjectAddForm.py index 2cadc938..907cfe39 100644 --- a/smash/web/tests/forms/test_SubjectAddForm.py +++ b/smash/web/tests/forms/test_SubjectAddForm.py @@ -40,7 +40,7 @@ class SubjectAddFormTests(LoggedInWithWorkerTestCase): def test_invalid_2(self): form_data = self.sample_data - form_data['nd_number'] = "123" + form_data['nd_number'] = "ND0123" form = SubjectAddForm(data=form_data, user=self.user) form.is_valid() diff --git a/smash/web/tests/forms/test_SubjectEditForm.py b/smash/web/tests/forms/test_SubjectEditForm.py index ea4e25fe..3de9b95d 100644 --- a/smash/web/tests/forms/test_SubjectEditForm.py +++ b/smash/web/tests/forms/test_SubjectEditForm.py @@ -17,7 +17,7 @@ class SubjectEditFormTests(LoggedInWithWorkerTestCase): 'default_location': location.id, 'country': COUNTRY_AFGHANISTAN_ID, 'screening_number': '123', - 'nd_number': 'nd_123' + 'nd_number': 'ND0123' } def tearDown(self): @@ -36,13 +36,13 @@ class SubjectEditFormTests(LoggedInWithWorkerTestCase): add_form = SubjectAddForm(data=self.sample_data, user=self.user) add_form.save() - self.sample_data['nd_number'] = "nd_124" + self.sample_data['nd_number'] = "ND0124" self.sample_data['screening_number'] = "124" add_form = SubjectAddForm(data=self.sample_data, user=self.user) subject = add_form.save() self.sample_data['id'] = subject.id - self.sample_data['nd_number'] = "nd_123" + self.sample_data['nd_number'] = "ND0123" edit_form = SubjectEditForm(self.sample_data) save_status = edit_form.is_valid() @@ -54,14 +54,14 @@ class SubjectEditFormTests(LoggedInWithWorkerTestCase): subject = add_form.save() self.sample_data['mpower_id'] = "mpower_002" - self.sample_data['nd_number'] = "nd_002" + self.sample_data['nd_number'] = "ND0002" self.sample_data['screening_number'] = "002" add_form = SubjectAddForm(data=self.sample_data, user=self.user) add_form.save() self.sample_data['id'] = subject.id self.sample_data['mpower_id'] = "mpower_002" - self.sample_data['nd_number'] = "nd_001" + self.sample_data['nd_number'] = "ND0001" self.sample_data['screening_number'] = "001" edit_form = SubjectEditForm(self.sample_data) -- GitLab