Skip to content
Snippets Groups Projects
Commit 39bbc90d authored by Carlos Vega's avatar Carlos Vega
Browse files

added excluded to the prepare_study_subject_fields function

parent b4330dab
No related branches found
No related tags found
1 merge request!178Feature/import data pdp
......@@ -15,11 +15,13 @@ logger = logging.getLogger(__name__)
class StudySubjectForm(ModelForm):
datetime_contact_reminder = forms.DateTimeField(label="Contact on",
widget=forms.DateTimeInput(DATETIMEPICKER_DATE_ATTRS),
widget=forms.DateTimeInput(
DATETIMEPICKER_DATE_ATTRS),
required=False
)
referral_letter = forms.FileField(label='Referral letter', widget=SecuredFileWidget(), required=False)
referral_letter = forms.FileField(
label='Referral letter', widget=SecuredFileWidget(), required=False)
voucher_types = forms.ModelMultipleChoiceField(required=False,
widget=forms.CheckboxSelectMultiple,
......@@ -28,10 +30,12 @@ class StudySubjectForm(ModelForm):
def __init__(self, *args, **kwargs):
super(StudySubjectForm, self).__init__(*args, **kwargs)
self.fields['health_partner'].queryset = Worker.get_workers_by_worker_type(WORKER_HEALTH_PARTNER)
self.fields['health_partner'].queryset = Worker.get_workers_by_worker_type(
WORKER_HEALTH_PARTNER)
class StudySubjectAddForm(StudySubjectForm):
class Meta:
model = StudySubject
fields = '__all__'
......@@ -53,7 +57,8 @@ class StudySubjectAddForm(StudySubjectForm):
if not screening_number:
prefix_screening_number = self.get_prefix_screening_number()
if prefix_screening_number is not None:
screening_number = get_new_screening_number(prefix_screening_number)
screening_number = get_new_screening_number(
prefix_screening_number)
return screening_number
def clean(self):
......@@ -74,7 +79,8 @@ class StudySubjectAddForm(StudySubjectForm):
else:
subject_type = self.cleaned_data.get('type', None)
if subject_type is not None:
screening_number_prefix = SCREENING_NUMBER_PREFIXES_FOR_TYPE[subject_type]
screening_number_prefix = SCREENING_NUMBER_PREFIXES_FOR_TYPE[
subject_type]
if screening_number_prefix is None:
return None
prefix_screening_number = screening_number_prefix + "-"
......@@ -83,7 +89,8 @@ class StudySubjectAddForm(StudySubjectForm):
def get_new_screening_number(screening_number_prefix):
result_number = 0
subjects = StudySubject.objects.filter(screening_number__contains=screening_number_prefix)
subjects = StudySubject.objects.filter(
screening_number__contains=screening_number_prefix)
for subject in subjects:
screening_numbers = subject.screening_number.split(";")
for screening_number in screening_numbers:
......@@ -99,6 +106,7 @@ def get_new_screening_number(screening_number_prefix):
class StudySubjectDetailForm(StudySubjectForm):
class Meta:
model = StudySubject
fields = '__all__'
......@@ -167,6 +175,7 @@ def prepare_study_subject_fields(fields, study):
prepare_field(fields, study.columns, 'nd_number')
prepare_field(fields, study.columns, 'datetime_contact_reminder')
prepare_field(fields, study.columns, 'postponed')
prepare_field(fields, study.columns, 'excluded')
prepare_field(fields, study.columns, 'flying_team')
prepare_field(fields, study.columns, 'mpower_id')
prepare_field(fields, study.columns, 'comments')
......@@ -190,7 +199,8 @@ def validate_subject_screening_number(self, cleaned_data):
subjects_from_db = StudySubject.objects.filter(screening_number=cleaned_data["screening_number"],
study=self.study)
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")
def validate_subject_nd_number(self, cleaned_data):
......@@ -200,7 +210,8 @@ def validate_subject_nd_number(self, cleaned_data):
if not self.study.check_nd_number(nd_number):
self.add_error('nd_number', "Invalid ND number")
else:
subjects_from_db = StudySubject.objects.filter(nd_number=nd_number, study=self.study)
subjects_from_db = StudySubject.objects.filter(
nd_number=nd_number, study=self.study)
if subjects_from_db:
if subjects_from_db[0].screening_number != cleaned_data.get('screening_number', ''):
self.add_error('nd_number', "ND number already in use")
......@@ -215,7 +226,8 @@ def validate_subject_resign_reason(self, cleaned_data):
def validate_subject_mpower_number(self, cleaned_data):
if self.study.columns.mpower_id:
if cleaned_data['mpower_id'] != "":
subjects_from_db = StudySubject.objects.filter(mpower_id=cleaned_data['mpower_id'])
subjects_from_db = StudySubject.objects.filter(
mpower_id=cleaned_data['mpower_id'])
if subjects_from_db:
if subjects_from_db[0].screening_number != cleaned_data.get('screening_number', ''):
self.add_error('mpower_id', "mPower number already in use")
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