diff --git a/apps/workflows/__init__.py b/apps/workflows/__init__.py index 4521dc5142..83d2e6dfe3 100644 --- a/apps/workflows/__init__.py +++ b/apps/workflows/__init__.py @@ -18,13 +18,14 @@ setup_workflow_list_link = {'text': _(u'workflow list'), 'view': 'setup_workflow setup_workflow_create_link = {'text': _(u'create new'), 'view': 'setup_workflow_create', 'famfam': 'chart_organisation_add', 'permissions': [PERMISSION_WORKFLOW_SETUP_CREATE]} setup_workflow_edit_link = {'text': _(u'edit'), 'view': 'setup_workflow_edit', 'args': 'object.pk', 'famfam': 'chart_organisation', 'permissions': [PERMISSION_WORKFLOW_SETUP_EDIT]} setup_workflow_delete_link = {'text': _(u'delete'), 'view': 'setup_workflow_delete', 'args': 'object.pk', 'famfam': 'chart_organisation_delete', 'permissions': [PERMISSION_WORKFLOW_SETUP_DELETE]} +setup_workflow_states_list_link = {'text': _(u'states'), 'view': 'setup_workflow_states_list', 'args': 'object.pk', 'famfam': 'transmit_go', 'permissions': [PERMISSION_WORKFLOW_SETUP_EDIT]} setup_state_list_link = {'text': _(u'state list'), 'view': 'setup_state_list', 'famfam': 'transmit', 'permissions': [PERMISSION_STATE_SETUP_VIEW]} setup_state_create_link = {'text': _(u'create new'), 'view': 'setup_state_create', 'famfam': 'transmit_add', 'permissions': [PERMISSION_STATE_SETUP_CREATE]} setup_state_edit_link = {'text': _(u'edit'), 'view': 'setup_state_edit', 'args': 'object.pk', 'famfam': 'transmit_edit', 'permissions': [PERMISSION_STATE_SETUP_EDIT]} setup_state_delete_link = {'text': _(u'delete'), 'view': 'setup_state_delete', 'args': 'object.pk', 'famfam': 'transmit_delete', 'permissions': [PERMISSION_STATE_SETUP_DELETE]} -register_links(Workflow, [setup_workflow_edit_link, setup_workflow_delete_link]) +register_links(Workflow, [setup_workflow_states_list_link, setup_workflow_edit_link, setup_workflow_delete_link]) register_links([Workflow, State, 'setup_workflow_list', 'setup_workflow_create', 'setup_state_list'], [setup_workflow_list_link], menu_name=u'form_header') register_links([Workflow, 'setup_workflow_list', 'setup_workflow_create'], [setup_workflow_create_link], menu_name=u'secondary_menu') diff --git a/apps/workflows/models.py b/apps/workflows/models.py index 6824cd61d9..0359519553 100644 --- a/apps/workflows/models.py +++ b/apps/workflows/models.py @@ -62,8 +62,8 @@ class Transition(models.Model): class WorkflowState(models.Model): - workflow = models.ForeignKey(Workflow, related_name='workflow_state_workflow', verbose_name=_(u'workflow')) - state = models.ForeignKey(State, related_name='workflow_state_state', verbose_name=_(u'state')) + workflow = models.ForeignKey(Workflow, verbose_name=_(u'workflow')) + state = models.ForeignKey(State, verbose_name=_(u'state')) description = models.TextField(blank=True, verbose_name=_(u'description')) def __unicode__(self): diff --git a/apps/workflows/urls.py b/apps/workflows/urls.py index 78f0a1f229..7223c08e5d 100644 --- a/apps/workflows/urls.py +++ b/apps/workflows/urls.py @@ -5,6 +5,7 @@ urlpatterns = patterns('workflows.views', url(r'^setup/workflow/create/$', 'setup_workflow_create', (), 'setup_workflow_create'), url(r'^setup/workflow/(?P\d+)/edit/$', 'setup_workflow_edit', (), 'setup_workflow_edit'), url(r'^setup/workflow/(?P\d+)/delete/$', 'setup_workflow_delete', (), 'setup_workflow_delete'), + url(r'^setup/workflow/(?P\d+)/state/list/$', 'setup_workflow_states_list', (), 'setup_workflow_states_list'), url(r'^setup/state/list/$', 'setup_state_list', (), 'setup_state_list'), url(r'^setup/state/create/$', 'setup_state_create', (), 'setup_state_create'), diff --git a/apps/workflows/views.py b/apps/workflows/views.py index 1db556df9e..242de0206a 100644 --- a/apps/workflows/views.py +++ b/apps/workflows/views.py @@ -38,8 +38,6 @@ def setup_workflow_list(request): 'object_list': Workflow.objects.all(), 'title': _(u'workflows'), 'hide_link': True, - #'list_object_variable_name': 'source', - #'source_type': source_type, 'extra_columns': [ {'name': _(u'Initial state'), 'attribute': encapsulate(lambda workflow: workflow.initial_state or _(u'None'))}, ], @@ -52,7 +50,6 @@ def setup_workflow_list(request): def setup_workflow_create(request): Permission.objects.check_permissions(request.user, [PERMISSION_WORKFLOW_SETUP_CREATE]) redirect_url = reverse('setup_workflow_list') - #previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', redirect_url))) if request.method == 'POST': form = WorkflowSetupForm(request.POST) @@ -142,6 +139,22 @@ def setup_workflow_delete(request, workflow_pk=None, workflow_pk_list=None): return render_to_response('generic_confirm.html', context, context_instance=RequestContext(request)) + +def setup_workflow_states_list(request, workflow_pk): + Permission.objects.check_permissions(request.user, [PERMISSION_WORKFLOW_SETUP_EDIT]) + workflow = get_object_or_404(Workflow, pk=workflow_pk) + + context = { + 'object_list': workflow.workflowstate_set.all(), + 'title': _(u'workflows'), + 'hide_link': True, + 'object': workflow, + } + + return render_to_response('generic_list.html', context, + context_instance=RequestContext(request)) + + # States def setup_state_list(request): Permission.objects.check_permissions(request.user, [PERMISSION_STATE_SETUP_VIEW])