workflows: do not crash on global action name duplicate (#20874)
This commit is contained in:
parent
e916dcf8d2
commit
5a5f2eb71a
|
@ -2979,7 +2979,13 @@ def test_workflows_global_actions(pub):
|
|||
resp = resp.click('add global action')
|
||||
resp.forms[0]['name'] = 'Global Action'
|
||||
resp = resp.forms[0].submit('submit')
|
||||
assert Workflow.get(workflow.id).global_actions[0].name == 'Global Action'
|
||||
|
||||
# test adding action with same name
|
||||
resp = app.get('/backoffice/workflows/%s/' % workflow.id)
|
||||
resp = resp.click('add global action')
|
||||
resp.forms[0]['name'] = 'Global Action'
|
||||
resp = resp.forms[0].submit('submit')
|
||||
assert 'There is already an action with that name.' in resp.body
|
||||
|
||||
# test rename
|
||||
resp = app.get('/backoffice/workflows/%s/' % workflow.id)
|
||||
|
|
|
@ -1302,9 +1302,14 @@ class GlobalActionsDirectory(Directory):
|
|||
|
||||
if form.is_submitted() and not form.has_errors():
|
||||
name = form.get_widget('name').parse()
|
||||
action = self.workflow.add_global_action(name)
|
||||
self.workflow.store()
|
||||
return redirect('%s/' % action.id)
|
||||
try:
|
||||
action = self.workflow.add_global_action(name)
|
||||
except DuplicateGlobalActionNameError:
|
||||
form.get_widget('name').set_error(
|
||||
_('There is already an action with that name.'))
|
||||
else:
|
||||
self.workflow.store()
|
||||
return redirect('%s/' % action.id)
|
||||
|
||||
get_response().breadcrumb.append(('new', _('New Global Action')))
|
||||
html_top('workflows', title=_('New Global Action'))
|
||||
|
|
Loading…
Reference in New Issue