diff --git a/mayan/apps/document_states/__init__.py b/mayan/apps/document_states/__init__.py index da130de102..b155e4c0d8 100644 --- a/mayan/apps/document_states/__init__.py +++ b/mayan/apps/document_states/__init__.py @@ -14,12 +14,13 @@ from .models import ( WorkflowTransition ) from .links import ( - link_document_workflow_instance_list, link_setup_workflow_create, - link_setup_workflow_delete, link_setup_workflow_edit, - link_setup_workflow_list, link_setup_workflow_states, - link_setup_workflow_state_create, link_setup_workflow_state_edit, + link_document_workflow_instance_list, link_setup_workflow_document_types, + link_setup_workflow_create, link_setup_workflow_delete, + link_setup_workflow_edit, link_setup_workflow_list, + link_setup_workflow_states, link_setup_workflow_state_create, + link_setup_workflow_state_delete, link_setup_workflow_state_edit, link_setup_workflow_transitions, link_setup_workflow_transition_create, - link_setup_workflow_transition_edit, link_setup_workflow_document_types, + link_setup_workflow_transition_delete, link_setup_workflow_transition_edit, link_workflow_instance_detail, link_workflow_instance_transition ) @@ -88,5 +89,5 @@ register_links([WorkflowInstance], [link_workflow_instance_detail, link_workflow register_links([Workflow, 'document_states:setup_workflow_create', 'document_states:setup_workflow_list'], [link_setup_workflow_list, link_setup_workflow_create], menu_name='secondary_menu') register_links([Workflow], [link_setup_workflow_states, link_setup_workflow_transitions, link_setup_workflow_document_types, link_setup_workflow_edit, link_setup_workflow_delete]) register_links([Workflow], [link_setup_workflow_state_create, link_setup_workflow_transition_create], menu_name='sidebar') -register_links([WorkflowState], [link_setup_workflow_state_edit]) -register_links([WorkflowTransition], [link_setup_workflow_transition_edit]) +register_links([WorkflowState], [link_setup_workflow_state_edit, link_setup_workflow_state_delete]) +register_links([WorkflowTransition], [link_setup_workflow_transition_edit, link_setup_workflow_transition_delete]) diff --git a/mayan/apps/document_states/links.py b/mayan/apps/document_states/links.py index 8e132c2b92..a379cff735 100644 --- a/mayan/apps/document_states/links.py +++ b/mayan/apps/document_states/links.py @@ -9,10 +9,12 @@ link_setup_workflow_edit = {'text': _('Edit'), 'view': 'document_states:setup_wo link_setup_workflow_states = {'text': _('States'), 'view': 'document_states:setup_workflow_states', 'args': 'object.pk', 'famfam': 'style'} link_setup_workflow_state_create = {'text': _('Create state'), 'view': 'document_states:setup_workflow_state_create', 'args': 'object.pk', 'famfam': 'style_add'} +link_setup_workflow_state_delete = {'text': _('Delete'), 'view': 'document_states:setup_workflow_state_delete', 'args': 'object.pk', 'famfam': 'delete'} link_setup_workflow_state_edit = {'text': _('Edit'), 'view': 'document_states:setup_workflow_state_edit', 'args': 'object.pk', 'famfam': 'pencil'} link_setup_workflow_transitions = {'text': _('Transitions'), 'view': 'document_states:setup_workflow_transitions', 'args': 'object.pk', 'famfam': 'lightning'} link_setup_workflow_transition_create = {'text': _('Create transition'), 'view': 'document_states:setup_workflow_transition_create', 'args': 'object.pk', 'famfam': 'lightning_add'} +link_setup_workflow_transition_delete = {'text': _('Delete'), 'view': 'document_states:setup_workflow_transition_delete', 'args': 'object.pk', 'famfam': 'delete'} link_setup_workflow_transition_edit = {'text': _('Edit'), 'view': 'document_states:setup_workflow_transition_edit', 'args': 'object.pk', 'famfam': 'pencil'} link_setup_workflow_document_types = {'text': _('Document types'), 'view': 'document_states:setup_workflow_document_types', 'args': 'object.pk', 'famfam': 'layout'} diff --git a/mayan/apps/document_states/urls.py b/mayan/apps/document_states/urls.py index 542a002d01..7c96c80ec2 100644 --- a/mayan/apps/document_states/urls.py +++ b/mayan/apps/document_states/urls.py @@ -2,11 +2,12 @@ from django.conf.urls import patterns, url from .views import ( SetupWorkflowCreateView, SetupWorkflowDeleteView, SetupWorkflowEditView, - SetupWorkflowListView, SetupWorkflowStateListView, - SetupWorkflowStateCreateView, SetupWorkflowStateEditView, - SetupWorkflowTransitionListView, SetupWorkflowTransitionCreateView, - SetupWorkflowTransitionEditView, DocumentWorkflowInstanceListView, - WorkflowInstanceDetailView, WorkflowInstanceTransitionView + SetupWorkflowListView, SetupWorkflowStateCreateView, + SetupWorkflowStateDeleteView, SetupWorkflowStateEditView, + SetupWorkflowStateListView, SetupWorkflowTransitionListView, + SetupWorkflowTransitionCreateView, SetupWorkflowTransitionDeleteView, + SetupWorkflowTransitionEditView, WorkflowInstanceDetailView, + WorkflowInstanceTransitionView, DocumentWorkflowInstanceListView ) urlpatterns = patterns('', @@ -14,13 +15,15 @@ urlpatterns = patterns('', url(r'^setup/create/$', SetupWorkflowCreateView.as_view(), name='setup_workflow_create'), url(r'^setup/(?P\d+)/edit/$', SetupWorkflowEditView.as_view(), name='setup_workflow_edit'), url(r'^setup/(?P\d+)/delete/$', SetupWorkflowDeleteView.as_view(), name='setup_workflow_delete'), + url(r'^setup/(?P\d+)/states/$', SetupWorkflowStateListView.as_view(), name='setup_workflow_states'), url(r'^setup/(?P\d+)/states/create/$', SetupWorkflowStateCreateView.as_view(), name='setup_workflow_state_create'), - + url(r'^setup/workflow/state/(?P\d+)/delete/$', SetupWorkflowStateDeleteView.as_view(), name='setup_workflow_state_delete'), url(r'^setup/workflow/state/(?P\d+)/edit/$', SetupWorkflowStateEditView.as_view(), name='setup_workflow_state_edit'), url(r'^setup/(?P\d+)/transitions/$', SetupWorkflowTransitionListView.as_view(), name='setup_workflow_transitions'), url(r'^setup/(?P\d+)/transitions/create/$', SetupWorkflowTransitionCreateView.as_view(), name='setup_workflow_transition_create'), + url(r'^setup/workflow/transitions/(?P\d+)/delete/$', SetupWorkflowTransitionDeleteView.as_view(), name='setup_workflow_transition_delete'), url(r'^setup/workflow/transitions/(?P\d+)/edit/$', SetupWorkflowTransitionEditView.as_view(), name='setup_workflow_transition_edit'), url(r'^document/(?P\d+)/workflows/$', DocumentWorkflowInstanceListView.as_view(), name='document_workflow_instance_list'), @@ -31,5 +34,3 @@ urlpatterns = patterns('', urlpatterns += patterns('document_states.views', url(r'^setup/(?P\d+)/document_types/$', 'setup_workflow_document_types', name='setup_workflow_document_types'), ) - - diff --git a/mayan/apps/document_states/views.py b/mayan/apps/document_states/views.py index 87f659f2af..da13f22c5d 100644 --- a/mayan/apps/document_states/views.py +++ b/mayan/apps/document_states/views.py @@ -263,6 +263,30 @@ class SetupWorkflowStateCreateView(SingleObjectCreateView): return super(SetupWorkflowStateCreateView, self).form_valid(form) +class SetupWorkflowStateDeleteView(SingleObjectDeleteView): + model = WorkflowState + view_permission = PERMISSION_WORKFLOW_DELETE + + def get_context_data(self, **kwargs): + context = super(SetupWorkflowStateDeleteView, self).get_context_data(**kwargs) + + context.update( + { + 'object': self.get_object().workflow, + 'workflow_instance': self.get_object(), + 'navigation_object_list': [ + {'object': 'object'}, + {'object': 'workflow_instance'} + ], + } + ) + + return context + + def get_success_url(self): + return reverse('document_states:setup_workflow_States', args=[self.get_object().workflow.pk]) + + class SetupWorkflowStateEditView(SingleObjectEditView): form_class = WorkflowStateForm model = WorkflowState @@ -366,6 +390,30 @@ class SetupWorkflowTransitionCreateView(SingleObjectCreateView): return HttpResponseRedirect(self.get_success_url()) +class SetupWorkflowTransitionDeleteView(SingleObjectDeleteView): + model = WorkflowTransition + view_permission = PERMISSION_WORKFLOW_DELETE + + def get_context_data(self, **kwargs): + context = super(SetupWorkflowTransitionDeleteView, self).get_context_data(**kwargs) + + context.update( + { + 'object': self.get_object().workflow, + 'workflow_instance': self.get_object(), + 'navigation_object_list': [ + {'object': 'object'}, + {'object': 'workflow_instance'} + ], + } + ) + + return context + + def get_success_url(self): + return reverse('document_states:setup_workflow_transitions', args=[self.get_object().workflow.pk]) + + class SetupWorkflowTransitionEditView(SingleObjectEditView): form_class = WorkflowTransitionForm model = WorkflowTransition