From daf0f5a0299817d7d6c7f61e93711a330e61a9dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laur=C3=A9line=20Gu=C3=A9rin?= Date: Fri, 29 Jul 2022 11:09:59 +0200 Subject: [PATCH] workflow: adapt message for card in remove item (#67459) --- tests/backoffice_pages/test_all.py | 32 ++++++++++++++++++++++++------ wcs/wf/remove.py | 6 +++++- 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/tests/backoffice_pages/test_all.py b/tests/backoffice_pages/test_all.py index 8a96f20c9..426c241a4 100644 --- a/tests/backoffice_pages/test_all.py +++ b/tests/backoffice_pages/test_all.py @@ -983,11 +983,7 @@ def test_backoffice_handling_global_action(pub): def test_backoffice_global_remove_action(pub): - create_user(pub) - - formdef = FormDef() - formdef.name = 'test global remove' - formdef.fields = [] + user = create_user(pub) workflow = Workflow.get_default_workflow() workflow.id = '2' @@ -995,8 +991,11 @@ def test_backoffice_global_remove_action(pub): action.add_action('remove') trigger = action.triggers[0] trigger.roles = [x.id for x in pub.role_class.select() if x.name == 'foobar'] - workflow.store() + + formdef = FormDef() + formdef.name = 'test global remove' + formdef.fields = [] formdef.workflow_id = workflow.id formdef.workflow_roles = {'_receiver': 1} formdef.store() @@ -1014,6 +1013,27 @@ def test_backoffice_global_remove_action(pub): assert resp.request.url == 'http://example.net/backoffice/management/test-global-remove/' assert 'The form has been deleted.' in resp.text + carddef = CardDef() + carddef.name = 'test global remove' + carddef.fields = [] + carddef.workflow_id = workflow.id + carddef.workflow_roles = {'_editor': user.roles[0]} + carddef.store() + + carddata = carddef.data_class()() + carddata.just_created() + carddata.jump_status('new') + carddata.user_id = user.id + carddata.store() + + resp = app.get('/backoffice/data/%s/%s/' % (carddef.url_name, carddata.id)) + assert 'remove' in resp.text + assert 'button-action-1' in resp.form.fields + resp = resp.form.submit('button-action-1') + resp = resp.follow() + assert resp.request.url == 'http://example.net/backoffice/data/test-global-remove/' + assert 'The card has been deleted.' in resp.text + def test_backoffice_global_action_jump_to_current_status(pub): create_user(pub) diff --git a/wcs/wf/remove.py b/wcs/wf/remove.py index 2669089de..332e8b7bd 100644 --- a/wcs/wf/remove.py +++ b/wcs/wf/remove.py @@ -16,6 +16,7 @@ from quixote import get_publisher, get_request, get_response, get_session +from wcs.carddef import CardDef from wcs.workflows import AbortActionException, WorkflowStatusItem, register_item_class from ..qommon import _ @@ -29,7 +30,10 @@ class RemoveWorkflowStatusItem(WorkflowStatusItem): def perform(self, formdata): formdata.remove_self() if get_request() and get_response().filter.get('in_backoffice'): - get_session().message = ('info', _('The form has been deleted.')) + if isinstance(formdata.formdef, CardDef): + get_session().message = ('info', _('The card has been deleted.')) + else: + get_session().message = ('info', _('The form has been deleted.')) url = '..' else: url = get_publisher().get_frontoffice_url()