Skip to content

Commit

Permalink
Use existing form_fields for paf form and sow form for edit paf appro…
Browse files Browse the repository at this point in the history
…val 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.
  • Loading branch information
sandeepsajan0 committed Mar 22, 2024
1 parent ac97a87 commit 3304ec4
Showing 1 changed file with 15 additions and 5 deletions.
20 changes: 15 additions & 5 deletions hypha/apply/projects/views/project.py
Original file line number Diff line number Diff line change
Expand Up @@ -1735,12 +1735,22 @@ def get_context_data(self, **kwargs):
**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):
Expand Down Expand Up @@ -1803,11 +1813,11 @@ def post(self, request, *args, **kwargs):
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 = []

Expand Down Expand Up @@ -1836,7 +1846,7 @@ def post(self, request, *args, **kwargs):
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)
Expand Down

0 comments on commit 3304ec4

Please sign in to comment.