From b503854948a7ae6fd332f91cfd5ea96f1dc1617b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Mon, 20 Jun 2016 21:00:13 +0200 Subject: [PATCH] workflows: don't include "in listing" option for "display form" fields (#11453) --- tests/test_admin_pages.py | 27 +++++++++++++++++++++++++++ wcs/wf/form.py | 7 +++++++ 2 files changed, 34 insertions(+) diff --git a/tests/test_admin_pages.py b/tests/test_admin_pages.py index 4012a91..623bf23 100644 --- a/tests/test_admin_pages.py +++ b/tests/test_admin_pages.py @@ -1556,6 +1556,33 @@ def test_workflows_edit_email_action(pub): resp = resp.form.submit('submit') assert 'error in template' in resp.body and 'unmatched [end]' in resp.body +def test_workflows_edit_display_form_action(pub): + create_superuser(pub) + role = create_role() + Workflow.wipe() + workflow = Workflow(name='foo') + workflow.add_status(name='baz') + workflow.store() + + app = login(get_app(pub)) + resp = app.get('/backoffice/workflows/1/') + resp = resp.click('baz') + + resp.forms[0]['type'] = 'Display a form' + resp = resp.forms[0].submit() + resp = resp.follow() + + resp = resp.click('Display a form') + resp = resp.click('Edit Fields') + + resp.form['label'] = 'foobar' + resp.form['type'] = 'Text (line)' + resp = resp.form.submit() + + resp = resp.follow() + assert 'foobar' in resp.body + resp = resp.click('Edit') + assert not 'in_listing' in resp.form.fields.keys() def test_workflows_variables(pub): create_superuser(pub) diff --git a/wcs/wf/form.py b/wcs/wf/form.py index e552edb..19449ff 100644 --- a/wcs/wf/form.py +++ b/wcs/wf/form.py @@ -50,14 +50,21 @@ class WorkflowFormFieldsFormDef(FormDef): def store(self): self.item.parent.parent.store() + class WorkflowFormFieldDefPage(FieldDefPage): section = 'workflows' + def form(self): + form = super(WorkflowFormFieldDefPage, self).form() + form.remove('in_listing') + return form + class WorkflowFormFieldsDirectory(FieldsDirectory): section = 'workflows' support_import = False blacklisted_types = ['page'] + field_def_page_class = WorkflowFormFieldDefPage class FormWorkflowStatusItem(WorkflowStatusItem): -- 2.8.1