UPD: improved workflow code.

This commit is contained in:
2018-11-22 18:00:26 +01:00
parent 43af31232e
commit 6ecda70b54
5 changed files with 238 additions and 168 deletions

View File

@@ -18,6 +18,7 @@ from .. import choices
from .. import forms
from .. import models
from ..utils import has_role
from ..workflow import workflow
app_config = apps.get_containing_app_config(__package__)
logger = logging.getLogger(__name__)
@@ -195,19 +196,22 @@ class EventConfirmStatusView(EventPermissionMixin, generic.DetailView):
elif status == 'accepted':
if not self.has_permission('accept', event):
raise PermissionDenied(status)
if not event.is_flagged('submitted'):
messages.error(request, _(u'Veranstaltung ist noch nicht eingereicht.'))
return HttpResponseRedirect(event.get_absolute_url())
elif status == 'publishing' or status == 'published':
if not self.has_permission('publish', event):
raise PermissionDenied(status)
if not event.is_flagged('accepted'):
messages.error(request, _(u'Veranstaltung ist noch nicht freigegeben.'))
return HttpResponseRedirect(event.get_absolute_url())
else:
if not self.has_permission('update', event):
raise PermissionDenied(status)
valid, return_code, message = workflow.validate_status_code_update(status, event)
if not valid:
if return_code == 'not-submitted':
message = _(u'Veranstaltung ist noch nicht eingereicht.')
elif return_code == 'not-accepted':
message = _(u'Veranstaltung ist noch nicht freigegeben.')
messages.error(request, message)
return HttpResponseRedirect(event.get_absolute_url())
event.confirm_status(status, request.user)
if status == 'submitted':