workflow: adapt message for card in remove item (#67459)
gitea-wip/wcs/pipeline/head Build started... Details

This commit is contained in:
Lauréline Guérin 2022-07-29 11:09:59 +02:00
parent d44d6b216e
commit daf0f5a029
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
2 changed files with 31 additions and 7 deletions

View File

@ -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)

View File

@ -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()