diff --git a/hypha/apply/projects/views/project.py b/hypha/apply/projects/views/project.py index 12eb26cfc7a00a86fcd01c1c8006d4e6d2930fa8..2ab814bae1afe34cd2d56781eb3a3960848947a4 100644 --- a/hypha/apply/projects/views/project.py +++ b/hypha/apply/projects/views/project.py @@ -1735,12 +1735,22 @@ class ProjectApprovalFormEditView(BaseStreamForm, UpdateView): **kwargs, } + def get_paf_form_fields(self): + return self.object.form_fields or self.approval_form.form.form_fields + + def get_sow_form_fields(self): + if hasattr(self.object, "sow"): + return ( + self.object.sow.form_fields or self.approval_sow_form.form.form_fields + ) + return self.approval_sow_form.form.form_fields + def get_defined_fields(self): approval_form = self.approval_form if approval_form and not self.paf_form: - return approval_form.form.form_fields + return self.get_paf_form_fields() if self.approval_sow_form and self.paf_form and not self.sow_form: - return self.approval_sow_form.form.form_fields + return self.get_sow_form_fields() return self.object.get_defined_fields() def get_paf_form_kwargs(self): @@ -1803,11 +1813,11 @@ class ProjectApprovalFormEditView(BaseStreamForm, UpdateView): if self.paf_form.is_valid() and self.sow_form.is_valid(): # if both forms exists, both needs to be valid together try: - paf_form_fields = self.approval_form.form.form_fields + paf_form_fields = self.get_paf_form_fields() except AttributeError: paf_form_fields = [] try: - sow_form_fields = self.approval_sow_form.form.form_fields + sow_form_fields = self.get_sow_form_fields() except AttributeError: sow_form_fields = [] @@ -1836,7 +1846,7 @@ class ProjectApprovalFormEditView(BaseStreamForm, UpdateView): if self.paf_form.is_valid(): # paf can exist alone also, it needs to be valid try: - paf_form_fields = self.approval_form.form.form_fields + paf_form_fields = self.get_paf_form_fields() except AttributeError: paf_form_fields = [] self.paf_form.save(paf_form_fields=paf_form_fields)