diff --git a/opentech/apply/funds/views.py b/opentech/apply/funds/views.py index 67d504a0ff2eb369940586ed130e7571d769bc8f..804c49e417d08d138bf2645674826ecea6d3ccf8 100644 --- a/opentech/apply/funds/views.py +++ b/opentech/apply/funds/views.py @@ -494,14 +494,17 @@ class ApplicantSubmissionEditView(BaseSubmissionEditView): ) action = set(self.request.POST.keys()) & set(self.transitions.keys()) - transition = self.transitions[action.pop()] - - self.object.perform_transition( - transition.target, - self.request.user, - request=self.request, - notify=not (revision or submitting_proposal), # Use the other notification - ) + try: + transition = self.transitions[action.pop()] + except KeyError: + pass + else: + self.object.perform_transition( + transition.target, + self.request.user, + request=self.request, + notify=not (revision or submitting_proposal), # Use the other notification + ) return HttpResponseRedirect(self.get_success_url()) diff --git a/opentech/apply/funds/workflow.py b/opentech/apply/funds/workflow.py index d73bc300e5da1572428ddfc92e2ad306602ca66b..c3d5e450efdd2e344a1e07753dd40b75fa47c876 100644 --- a/opentech/apply/funds/workflow.py +++ b/opentech/apply/funds/workflow.py @@ -160,6 +160,8 @@ reviewer_review_permissions = make_permissions(edit=[staff_can], review=[staff_c applicant_edit_permissions = make_permissions(edit=[applicant_can], review=[staff_can]) +staff_applicant_edit_permissions = make_permissions(edit=[staff_can, applicant_can]) + staff_edit_permissions = make_permissions(edit=[staff_can]) @@ -260,7 +262,7 @@ SingleStageDefinition = [ 'display': 'Accepted', 'future': 'Application Outcome', 'stage': Request, - 'permissions': staff_edit_permissions, + 'permissions': staff_applicant_edit_permissions, }, 'rejected': { 'display': 'Dismissed', @@ -384,7 +386,7 @@ SingleStageExternalDefinition = [ 'display': 'Accepted', 'future': 'Application Outcome', 'stage': RequestExt, - 'permissions': staff_edit_permissions, + 'permissions': staff_applicant_edit_permissions, }, 'ext_rejected': { 'display': 'Dismissed', @@ -626,7 +628,7 @@ DoubleStageDefinition = [ 'display': 'Accepted', 'future': 'Final Determination', 'stage': Proposal, - 'permissions': staff_edit_permissions, + 'permissions': staff_applicant_edit_permissions, }, 'proposal_rejected': { 'display': 'Dismissed',