Skip to content

Submission delete

hypha.apply.funds.views.submission_delete

SubmissionDeleteView

Bases: LoginRequiredMixin, UserPassesTestMixin, DeleteView

View for deleting submissions with confirmation modal.

After successful deletion: - Redirects applicants to their dashboard - Redirects staff to the submissions list - Creates delete notification unless author deleting own draft

model class-attribute instance-attribute

test_func

test_func()
Source code in hypha/apply/funds/views/submission_delete.py
def test_func(self):
    return has_object_permission(
        "delete_submission", self.request.user, obj=self.get_object()
    )

get_success_url

get_success_url()
Source code in hypha/apply/funds/views/submission_delete.py
def get_success_url(self):
    if self.request.user.is_applicant:
        return reverse_lazy("dashboard:dashboard")
    return reverse_lazy("funds:submissions:list")

form_valid

form_valid(form)
Source code in hypha/apply/funds/views/submission_delete.py
def form_valid(self, form):
    submission = self.get_object()

    # Notify unless author delete own draft.
    if submission.status != DRAFT_STATE and submission.user != self.request.user:
        messenger(
            MESSAGES.DELETE_SUBMISSION,
            user=self.request.user,
            request=self.request,
            source=submission,
        )

    # Delete NEW_SUBMISSION event for this particular submission, if any.
    # Otherwise, the submission deletion will fail.
    Event.objects.filter(
        type=MESSAGES.NEW_SUBMISSION, object_id=submission.id
    ).delete()

    # delete submission and redirect to success url
    return super().form_valid(form)