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

screening number is not generated automatically

parent 81713ca9
No related branches found
No related tags found
1 merge request!5Appointments dev
...@@ -25,7 +25,7 @@ def validate_subject_nd_number(self): ...@@ -25,7 +25,7 @@ def validate_subject_nd_number(self):
if subject['nd_number']!="": if subject['nd_number']!="":
subjects_from_db = Subject.objects.filter(nd_number=subject['nd_number']) subjects_from_db = Subject.objects.filter(nd_number=subject['nd_number'])
if (len(subjects_from_db)>0): if (len(subjects_from_db)>0):
if (subjects_from_db[0].screening_number!= subject['screening_number']): if subjects_from_db[0].screening_number!= subject.get('screening_number',''):
self.add_error('nd_number', "ND number already in use") self.add_error('nd_number', "ND number already in use")
...@@ -42,31 +42,13 @@ class SubjectAddForm(ModelForm): ...@@ -42,31 +42,13 @@ class SubjectAddForm(ModelForm):
def clean(self): def clean(self):
subject = self.cleaned_data subject = self.cleaned_data
subjects_from_db = Subject.objects.filter(screening_number=subject['screening_number']) subjects_from_db = Subject.objects.filter(screening_number=subject.get('screening_number',''))
if len(subjects_from_db)>0: if len(subjects_from_db)>0:
self.add_error('screening_number', "Screening number already in use") self.add_error('screening_number', "Screening number already in use")
validate_subject_nd_number(self) validate_subject_nd_number(self)
def get_new_screening_number(self):
result = 1;
numbers = Subject.objects.values_list('screening_number')
for number_row in numbers:
try:
id = int(number_row[0])
result = max(result, id+1)
except:
pass
return result
def clean_screening_number(self):
if self.cleaned_data['screening_number']=="":
self.cleaned_data['screening_number'] = self.get_new_screening_number()
return self.cleaned_data['screening_number'];
class SubjectDetailForm(ModelForm): class SubjectDetailForm(ModelForm):
class Meta: class Meta:
model = Subject model = Subject
......
...@@ -137,7 +137,6 @@ class Subject(models.Model): ...@@ -137,7 +137,6 @@ class Subject(models.Model):
verbose_name='Country' verbose_name='Country'
) )
screening_number = models.CharField(max_length=50, screening_number = models.CharField(max_length=50,
blank=True,
unique=True, unique=True,
verbose_name='Screening number' verbose_name='Screening number'
) )
......
...@@ -12,6 +12,7 @@ class SubjectAddFormTests(TestCase): ...@@ -12,6 +12,7 @@ class SubjectAddFormTests(TestCase):
'sex' : Subject.SEX_CHOICES_MALE, 'sex' : Subject.SEX_CHOICES_MALE,
'type' : Subject.SUBJECT_TYPE_CHOICES_CONTROL, 'type' : Subject.SUBJECT_TYPE_CHOICES_CONTROL,
'default_location' : location.id, 'default_location' : location.id,
'screening_number' : "123",
'country' : 'Luxembourg' 'country' : 'Luxembourg'
} }
def test_validation(self): def test_validation(self):
...@@ -42,7 +43,17 @@ class SubjectAddFormTests(TestCase): ...@@ -42,7 +43,17 @@ class SubjectAddFormTests(TestCase):
self.assertTrue(form.is_valid()) self.assertTrue(form.is_valid())
form.save() form.save()
form_data['screening_number'] = "2"
form2 = SubjectAddForm(data=form_data) form2 = SubjectAddForm(data=form_data)
validation_status = form2.is_valid() validation_status = form2.is_valid()
self.assertFalse(validation_status) self.assertFalse(validation_status)
self.assertTrue("nd_number" in form2.errors) self.assertTrue("nd_number" in form2.errors)
def test_invalid_3(self):
form_data = self.sample_data
form_data['screening_number'] = ""
form = SubjectAddForm(data=form_data)
validation_status = form.is_valid()
self.assertFalse(validation_status)
self.assertTrue("screening_number" in form.errors)
...@@ -9,14 +9,7 @@ from web.tests.functions import * ...@@ -9,14 +9,7 @@ from web.tests.functions import *
class SubjectAddFormTests(TestCase): class SubjectAddFormTests(TestCase):
def setUp(self): def setUp(self):
location = get_test_location() location = get_test_location()
subject_data = {'first_name': 'name', self.subject = create_subject()
'last_name': 'name',
'sex' : Subject.SEX_CHOICES_MALE,
'type' : Subject.SUBJECT_TYPE_CHOICES_CONTROL,
'default_location' : location.id,
'country' : 'Luxembourg',
}
self.subject = SubjectAddForm(data=subject_data).save()
self.sample_data = {'datetime_begin': "2017-01-01", self.sample_data = {'datetime_begin': "2017-01-01",
'datetime_end': "2017-02-02", 'datetime_end': "2017-02-02",
......
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