From 3304ec4e7131ec45f5c49f787b2233390ba27215 Mon Sep 17 00:00:00 2001 From: Sandeep Chauhan <sandeepsajan0@gmail.com> Date: Fri, 22 Mar 2024 13:22:33 +0530 Subject: [PATCH] Use existing form_fields for paf form and sow form for edit paf approval view (#3823) Fixes #3280 ## Test Steps - [ ] Check and notice the paf and sow form fields in any project. - [ ] Update attached PAF approval fields via wagtail admin. - [ ] Try to edit the project's paf form, fields should be same as before. --- hypha/apply/projects/views/project.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/hypha/apply/projects/views/project.py b/hypha/apply/projects/views/project.py index 12eb26cfc..2ab814bae 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) -- GitLab