diff --git a/opentech/apply/determinations/views.py b/opentech/apply/determinations/views.py index 1ddde512d082ccd864f048d8b87691fc35a76dd8..2df3255cd1028443dcdc97855a94502219b8a7a9 100644 --- a/opentech/apply/determinations/views.py +++ b/opentech/apply/determinations/views.py @@ -5,6 +5,7 @@ from django.shortcuts import get_object_or_404 from django.urls import reverse_lazy from django.utils.decorators import method_decorator from django.views.generic import DetailView +from django_fsm import can_proceed from opentech.apply.funds.models import ApplicationSubmission from opentech.apply.utils.views import CreateOrUpdateView @@ -82,11 +83,12 @@ class DeterminationCreateOrUpdateView(CreateOrUpdateView): return self.progress_stage(self.submission) or response def progress_stage(self, instance): - try: - instance.perform_transition('draft_proposal', self.request.user) - except PermissionDenied: - pass - else: + # TODO update post-revisions work + proposal_transition = instance.get_transition('draft_proposal') + if proposal_transition: + if can_proceed(proposal_transition): + proposal_transition(by=self.request.user) + instance.save() return HttpResponseRedirect(instance.get_absolute_url()) def get_action_name_from_determination(self, determination):