Skip to content
Snippets Groups Projects
Unverified Commit 7db45090 authored by Sandeep Chauhan's avatar Sandeep Chauhan Committed by GitHub
Browse files

Fix: Internal approval projects with no Project reviewer roles (#4028)

Fixes #3945 
parent a64852ae
No related branches found
No related tags found
1 merge request!98Merge 5.15.0 into ardc-main
......@@ -4,3 +4,6 @@ from django.apps import AppConfig
class ProjectsConfig(AppConfig):
name = "hypha.apply.projects"
label = "application_projects"
def ready(self):
import hypha.apply.projects.signals # noqa: F401
......@@ -541,6 +541,11 @@ class ProjectSettings(BaseSiteSetting, ClusterableModel):
InlinePanel("paf_reviewers_roles", label=_("PAF Reviewers Roles")),
],
heading=_("PAF Reviewers Roles"),
help_text=_(
"Reviewer Roles are needed to move projects to 'Internal Approval' stage. "
"Delete all roles to skip internal approval process and "
"to move all internal approval projects back to the 'Draft' stage with all approvals removed."
),
),
]
......
from django.db.models.signals import post_delete
from django.dispatch import receiver
from hypha.apply.todo.views import remove_tasks_of_related_obj
from .models.project import DRAFT, INTERNAL_APPROVAL, PAFReviewersRole, Project
@receiver(post_delete, sender=PAFReviewersRole)
def handle_internal_approval_projects(sender, instance, **kwargs):
# if last Project reviewer role
if PAFReviewersRole.objects.count() == 0:
for project in Project.objects.filter(status=INTERNAL_APPROVAL):
# remove all paf approvals(approved and unapproved both)
project.paf_approvals.all().delete()
# update project status back to Draft
project.status = DRAFT
project.save(update_fields=["status"])
# remove all tasks for internal_approval project
remove_tasks_of_related_obj(project)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment