From 278fdc3c9a031ca0228beba0e3ccf72e163a6fac Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Sun, 9 Dec 2018 15:02:33 -0400 Subject: [PATCH] Workflows: Don't capture form exceptions Instead of capturing the form save exceptions in the subclass let the base class do the work. Use the base class get_instance_extra_data method to avoid some code repetition. Signed-off-by: Roberto Rosario --- mayan/apps/document_states/views.py | 28 ++++++---------------------- 1 file changed, 6 insertions(+), 22 deletions(-) diff --git a/mayan/apps/document_states/views.py b/mayan/apps/document_states/views.py index 0d5bc54741..3a485029c7 100644 --- a/mayan/apps/document_states/views.py +++ b/mayan/apps/document_states/views.py @@ -2,7 +2,6 @@ from __future__ import absolute_import, unicode_literals from django.contrib import messages from django.db import transaction -from django.db.utils import IntegrityError from django.http import Http404, HttpResponseRedirect from django.shortcuts import get_object_or_404 from django.template import RequestContext @@ -427,6 +426,9 @@ class SetupWorkflowStateCreateView(SingleObjectCreateView): ) % self.get_workflow() } + def get_instance_extra_data(self): + return {'workflow': self.get_workflow()} + def get_object_list(self): return self.get_workflow().states.all() @@ -443,12 +445,6 @@ class SetupWorkflowStateCreateView(SingleObjectCreateView): ) return workflow - def form_valid(self, form): - self.object = form.save(commit=False) - self.object.workflow = self.get_workflow() - self.object.save() - return super(SetupWorkflowStateCreateView, self).form_valid(form) - class SetupWorkflowStateDeleteView(SingleObjectDeleteView): model = WorkflowState @@ -543,21 +539,6 @@ class SetupWorkflowStateListView(SingleObjectListView): class SetupWorkflowTransitionCreateView(SingleObjectCreateView): form_class = WorkflowTransitionForm - def form_valid(self, form): - self.object = form.save(commit=False) - self.object.workflow = self.get_workflow() - try: - self.object.save() - except IntegrityError: - messages.error( - self.request, _('Unable to save transition; integrity error.') - ) - return super( - SetupWorkflowTransitionCreateView, self - ).form_invalid(form) - else: - return HttpResponseRedirect(self.get_success_url()) - def get_extra_context(self): return { 'object': self.get_workflow(), @@ -573,6 +554,9 @@ class SetupWorkflowTransitionCreateView(SingleObjectCreateView): kwargs['workflow'] = self.get_workflow() return kwargs + def get_instance_extra_data(self): + return {'workflow': self.get_workflow()} + def get_object_list(self): return self.get_workflow().transitions.all()