From c4844f2209933be2d3a9eccd93cc48bb95f083eb Mon Sep 17 00:00:00 2001 From: Thomas NOEL Date: Fri, 12 Feb 2016 15:41:39 +0100 Subject: [PATCH] wscall: add a description label (#9958) --- tests/test_admin_pages.py | 23 +++++++++++++++++++++++ wcs/wf/wscall.py | 11 ++++++++++- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/tests/test_admin_pages.py b/tests/test_admin_pages.py index 44533cd..95255de 100644 --- a/tests/test_admin_pages.py +++ b/tests/test_admin_pages.py @@ -25,6 +25,7 @@ from wcs.categories import Category from wcs.data_sources import NamedDataSource from wcs.roles import Role from wcs.workflows import Workflow, DisplayMessageWorkflowStatusItem +from wcs.wf.wscall import WebserviceCallStatusItem from wcs.formdef import FormDef from wcs import fields @@ -1697,6 +1698,28 @@ def test_workflows_global_actions_edit(pub): resp = resp.form.submit('submit') assert Workflow.get(workflow.id).global_actions[0].triggers[0].roles == ['_receiver'] +def test_workflows_wscall_label(pub): + create_superuser(pub) + create_role() + + Workflow.wipe() + workflow = Workflow(name='foo') + baz_status = workflow.add_status(name='baz') + wscall = WebserviceCallStatusItem() + wscall.parent = baz_status + baz_status.items.append(wscall) + workflow.store() + + app = login(get_app(pub)) + resp = app.get('/backoffice/workflows/%s/status/%s/' % (workflow.id, baz_status.id)) + assert 'Webservice Call' in resp.body + assert 'Webservice Call "' not in resp.body + + wscall.label = 'foowscallbar' + workflow.store() + resp = app.get('/backoffice/workflows/%s/status/%s/' % (workflow.id, baz_status.id)) + assert 'Webservice Call "foowscallbar"' in resp.body + def test_users(pub): create_superuser(pub) app = login(get_app(pub)) diff --git a/wcs/wf/wscall.py b/wcs/wf/wscall.py index 146224d..1837da4 100644 --- a/wcs/wf/wscall.py +++ b/wcs/wf/wscall.py @@ -56,6 +56,7 @@ class WebserviceCallStatusItem(WorkflowStatusItem): key = 'webservice_call' support_substitution_variables = True + label = None url = None varname = None post = True @@ -69,13 +70,21 @@ class WebserviceCallStatusItem(WorkflowStatusItem): notify_on_errors = True record_errors = False + def render_as_line(self): + if self.label: + return _('Webservice Call "%s"') % self.label + else: + return _('Webservice Call') + def get_parameters(self): return ('url', 'post', 'varname', 'request_signature_key', 'post_data', 'action_on_4xx', 'action_on_5xx', 'action_on_bad_data', 'action_on_network_errors', 'notify_on_errors', - 'record_errors') + 'record_errors', 'label') def add_parameters_widgets(self, form, parameters, prefix='', formdef=None): + if 'label' in parameters: + form.add(StringWidget, '%slabel' % prefix, size=40, title=_('Label'), value=self.label) if 'url' in parameters: form.add(StringWidget, '%surl' % prefix, title=_('URL'), value=self.url, size=80, -- 2.7.0