From 257e44f03500a27d0b8ef3a19fdca7bb07c19738 Mon Sep 17 00:00:00 2001 From: Paul Marillonnet Date: Fri, 22 Dec 2017 15:28:35 +0100 Subject: [PATCH] WIP do not crash on invalid global action name (#20874) --- wcs/admin/workflows.py | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/wcs/admin/workflows.py b/wcs/admin/workflows.py index daa76895..dca944c2 100644 --- a/wcs/admin/workflows.py +++ b/wcs/admin/workflows.py @@ -1292,16 +1292,23 @@ class GlobalActionsDirectory(Directory): return redirect('..') 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) - - get_response().breadcrumb.append(('new', _('New Global Action'))) - html_top('workflows', title=_('New Global Action')) - r = TemplateIO(html=True) - r += htmltext('

%s

') % _('New Global Action') - r += form.render() + try: + name = form.get_widget('name').parse() + action = self.workflow.add_global_action(name) + self.workflow.store() + return redirect('%s/' % action.id) + except DuplicateGlobalActionNameError: + get_response().breadcrumb.append(('new', _('New Global Action'))) + html_top('workflows', title=_('New Global Action')) + r = TemplateIO(html=True) + r += htmltext('

%s

') % _('Invalid global action name.') + r += form.render() + else: + get_response().breadcrumb.append(('new', _('New Global Action'))) + html_top('workflows', title=_('New Global Action')) + r = TemplateIO(html=True) + r += htmltext('

%s

') % _('New Global Action') + r += form.render() return r.getvalue() -- 2.11.0