diff --git a/smash/web/forms/study_subject_forms.py b/smash/web/forms/study_subject_forms.py index 8fab21fc5fce5baeaf417452fadd26417b4c016e..aacd999186c4d76bd08a7545369d488530456558 100644 --- a/smash/web/forms/study_subject_forms.py +++ b/smash/web/forms/study_subject_forms.py @@ -92,13 +92,16 @@ class StudySubjectDetailForm(ModelForm): super(StudySubjectDetailForm, self).__init__(*args, **kwargs) instance = getattr(self, 'instance', None) + self.study = get_study_from_study_subject_instance(instance) + prepare_study_subject_fields(fields=self.fields, study=self.study) + def get_study_from_study_subject_instance(study_subject): - if instance and instance.study_id: - self.study = Study.objects.filter(id=instance.study_id)[0] + if study_subject and study_subject.study_id: + return Study.objects.filter(id=study_subject.study_id)[0] else: - self.study = Study(columns=StudyColumns()) + return Study(columns=StudyColumns()) class StudySubjectEditForm(ModelForm): @@ -115,10 +118,7 @@ class StudySubjectEditForm(ModelForm): instance = getattr(self, 'instance', None) if instance and instance.id: self.fields['screening_number'].widget.attrs['readonly'] = True - if instance and instance.study_id: - self.study = Study.objects.filter(id=instance.study_id)[0] - else: - self.study = Study(columns=StudyColumns()) + self.study = get_study_from_study_subject_instance(instance) if was_resigned: self.fields['resigned'].disabled = True