diff --git a/smash/web/forms/study_subject_forms.py b/smash/web/forms/study_subject_forms.py index 76d4d7735119ae75280a3e7a42550d051879c632..f27a259cecae82bcbfbe77ce6f4a559b6cf04295 100644 --- a/smash/web/forms/study_subject_forms.py +++ b/smash/web/forms/study_subject_forms.py @@ -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")