diff --git a/hypha/apply/funds/views.py b/hypha/apply/funds/views.py index 6d0ff830401dbc45688eb2f5745651279f3193be..4ff4ce0caca74912df09233cf02f2222062de245 100644 --- a/hypha/apply/funds/views.py +++ b/hypha/apply/funds/views.py @@ -697,7 +697,7 @@ class AdminSubmissionDetailView(ReviewContextMixin, ActivityContextMixin, Delega def dispatch(self, request, *args, **kwargs): submission = self.get_object() - if submission.status == DRAFT_STATE: + if submission.status == DRAFT_STATE and not request.user == submission.user: raise Http404 redirect = SubmissionSealedView.should_redirect(request, submission) return redirect or super().dispatch(request, *args, **kwargs) @@ -723,12 +723,12 @@ class ReviewerSubmissionDetailView(ReviewContextMixin, ActivityContextMixin, Del def dispatch(self, request, *args, **kwargs): submission = self.get_object() - if submission.status == DRAFT_STATE: - raise Http404 # If the requesting user submitted the application, return the Applicant view. # Reviewers may sometimes be applicants as well. if submission.user == request.user: return ApplicantSubmissionDetailView.as_view()(request, *args, **kwargs) + if submission.status == DRAFT_STATE: + raise Http404 return super().dispatch(request, *args, **kwargs) @@ -737,8 +737,6 @@ class PartnerSubmissionDetailView(ActivityContextMixin, DelegateableView, Detail form_views = [CommentFormView] def get_object(self): - if submission.status == DRAFT_STATE: - raise Http404 return super().get_object().from_draft() def dispatch(self, request, *args, **kwargs): @@ -751,6 +749,8 @@ class PartnerSubmissionDetailView(ActivityContextMixin, DelegateableView, Detail partner_has_access = submission.partners.filter(pk=request.user.pk).exists() if not partner_has_access: raise PermissionDenied + if submission.status == DRAFT_STATE: + raise Http404 return super().dispatch(request, *args, **kwargs) @@ -761,8 +761,6 @@ class CommunitySubmissionDetailView(ReviewContextMixin, ActivityContextMixin, De def dispatch(self, request, *args, **kwargs): submission = self.get_object() - if submission.status == DRAFT_STATE: - raise Http404 # If the requesting user submitted the application, return the Applicant view. # Reviewers may sometimes be applicants as well. if submission.user == request.user: @@ -770,6 +768,8 @@ class CommunitySubmissionDetailView(ReviewContextMixin, ActivityContextMixin, De # Only allow community reviewers in submission with a community review state. if not submission.community_review: raise PermissionDenied + if submission.status == DRAFT_STATE: + raise Http404 return super().dispatch(request, *args, **kwargs)