Skip to content
Snippets Groups Projects
Commit 6865dedf authored by Piotr Gawron's avatar Piotr Gawron
Browse files

modification of nd_number checks against duplicates properly

parent f80411a9
No related branches found
No related tags found
No related merge requests found
......@@ -14,8 +14,9 @@ def validate_subject_nd_number(self):
subject = self.cleaned_data
if subject['nd_number']!="":
subjects_from_db = Subject.objects.filter(nd_number=subject['nd_number'])
if len(subjects_from_db)>0:
self.add_error('nd_number', "ND number already in use")
if (len(subjects_from_db)>0):
if (subjects_from_db[0].screening_number!= subject['screening_number']):
self.add_error('nd_number', "ND number already in use")
class SubjectAddForm(ModelForm):
......@@ -64,6 +65,7 @@ class SubjectDetailForm(ModelForm):
class SubjectEditForm(ModelForm):
date_born = forms.DateField(label='Date of birth',
required = False,
widget=forms.SelectDateWidget(years=YEAR_CHOICES)
)
......
from django.test import TestCase
from web.forms import SubjectAddForm
from web.forms import SubjectEditForm
from web.models import Subject
class SubjectEditFormTests(TestCase):
def setUp(self):
self.sample_data = {'first_name': 'name',
'last_name': 'name',
'status' : Subject.STATUS_CHOICES_NOT_CONTACTED,
'sex' : Subject.SEX_CHOICES_MALE,
'country' : 'Luxembourg',
'screening_number' : '123',
'nd_number' : 'nd_123'
}
def tearDown(self):
Subject.objects.all().delete()
def test_validation(self):
add_form = SubjectAddForm(data=self.sample_data)
subject = add_form.save()
self.sample_data['id'] = subject.id
edit_form = SubjectEditForm(self.sample_data)
save_status = edit_form.is_valid()
self.assertTrue(save_status)
def test_invalid_nd_number_edit(self):
add_form = SubjectAddForm(data=self.sample_data)
add_form.save()
self.sample_data['nd_number'] = "nd_124"
self.sample_data['screening_number'] = "124"
add_form = SubjectAddForm(data=self.sample_data)
subject = add_form.save()
self.sample_data['id'] = subject.id
self.sample_data['nd_number'] = "nd_123"
edit_form = SubjectEditForm(self.sample_data)
save_status = edit_form.is_valid()
self.assertFalse(save_status)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment