From 295a93d59956854d58e90fea07cb27524e90043d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Thu, 6 Aug 2015 14:29:59 +0200 Subject: [PATCH 2/4] admin: use new option style for workflow related options (#8049) --- tests/test_admin_pages.py | 28 +++++++------- wcs/admin/forms.py | 95 ++++++++++++++++++----------------------------- 2 files changed, 50 insertions(+), 73 deletions(-) diff --git a/tests/test_admin_pages.py b/tests/test_admin_pages.py index 554331e..4b2e0bf 100644 --- a/tests/test_admin_pages.py +++ b/tests/test_admin_pages.py @@ -346,7 +346,7 @@ def test_form_workflow(): app = login(get_app(pub)) resp = app.get('/backoffice/forms/1/') - assert 'Workflow:' not in resp.body + assert_option_display(resp, 'Workflow', 'Default') Workflow.wipe() workflow = Workflow(name='Workflow One') @@ -355,7 +355,7 @@ def test_form_workflow(): workflow.store() resp = app.get('/backoffice/forms/1/') - assert 'Workflow:' in resp.body + assert_option_display(resp, 'Workflow', 'Default') def test_form_workflow_change(): create_superuser() @@ -376,12 +376,12 @@ def test_form_workflow_change(): app = login(get_app(pub)) resp = app.get('/backoffice/forms/1/') - resp = resp.click('change', href='workflow') + resp = resp.click(href='workflow', index=1) resp = resp.forms[0].submit('cancel') assert FormDef.get(formdef.id).workflow_id is None resp = app.get('/backoffice/forms/1/') - resp = resp.click('change', href='workflow') + resp = resp.click(href='workflow', index=1) assert 'Workflow One' not in resp.body # this workflow doesn't have any status resp.forms[0]['workflow_id'] = workflow.id resp = resp.forms[0].submit('submit') @@ -413,7 +413,7 @@ def test_form_workflow_remapping(): app = login(get_app(pub)) resp = app.get('/backoffice/forms/1/') - resp = resp.click('change', href='workflow') + resp = resp.click(href='workflow', index=1) resp.forms[0]['workflow_id'] = workflow.id resp = resp.forms[0].submit('submit') assert resp.location == 'http://example.net/backoffice/forms/1/workflow-status-remapping?new=2' @@ -438,11 +438,11 @@ def test_form_workflow_role(): app = login(get_app(pub)) resp = app.get('/backoffice/forms/1/') - resp = resp.click('change', href='role/_receiver') + resp = resp.click(href='role/_receiver') resp = resp.forms[0].submit('cancel') resp = app.get('/backoffice/forms/1/') - resp = resp.click('change', href='role/_receiver') + resp = resp.click(href='role/_receiver') resp.forms[0]['role_id'] = 'foobar' resp = resp.forms[0].submit('submit') assert FormDef.get(1).workflow_roles == {'_receiver': '1'} @@ -521,11 +521,11 @@ def test_form_acl_read(): app = login(get_app(pub)) resp = app.get('/backoffice/forms/1/') - resp = resp.click('change', href='acl-read') + resp = resp.click(href='acl-read') resp = resp.forms[0].submit('cancel') resp = app.get('/backoffice/forms/1/') - resp = resp.click('change', href='acl-read') + resp = resp.click(href='acl-read') resp.forms[0]['acl_read'] = 'Everybody' resp = resp.forms[0].submit('submit') assert FormDef.get(1).acl_read == 'all' @@ -542,11 +542,11 @@ def test_form_roles(): app = login(get_app(pub)) resp = app.get('/backoffice/forms/1/') - resp = resp.click('change', href='roles', index=0) + resp = resp.click('User Roles') resp = resp.forms[0].submit('cancel') resp = app.get('/backoffice/forms/1/') - resp = resp.click('change', href='roles', index=0) + resp = resp.click('User Roles') resp.forms[0]['roles$element0'].value = role.name resp = resp.forms[0].submit('submit') assert FormDef.get(1).roles == [role.id] @@ -906,16 +906,16 @@ def test_form_legacy_int_id(): assert resp.forms[0]['category_id'].value resp = app.get('/backoffice/forms/1/') - resp = resp.click('change', href='workflow') + resp = resp.click(href='workflow', index=1) assert resp.forms[0]['workflow_id'].value resp = app.get('/backoffice/forms/1/') - resp = resp.click('change', href='roles', index=0) + resp = resp.click('User Roles') assert resp.forms[0]['roles$element0'].value == 'Logged Users' assert resp.forms[0]['roles$element1'].value == 'ZAB' resp = app.get('/backoffice/forms/1/') - resp = resp.click('change', href='role/_receiver') + resp = resp.click('Recipient') assert resp.forms[0]['role_id'].value == 'ZAB' def test_form_anonymise(): diff --git a/wcs/admin/forms.py b/wcs/admin/forms.py index 9f0c83c..dc2a9b4 100644 --- a/wcs/admin/forms.py +++ b/wcs/admin/forms.py @@ -360,67 +360,50 @@ class FormDefPage(Directory): r += htmltext('
') r += htmltext('
') - r += htmltext('

%s

') % _('Access') - r += htmltext('
    ') + r += htmltext('

    %s

    ') % _('Workflow') + r += htmltext('
      ') - workflows = get_workflows() - if workflows: - r += htmltext('
    • %s ') % _('Workflow:') - if self.formdef.workflow: - r += self.formdef.workflow.name - else: - r += '-' - if self.formdef.workflow_id: - pristine_workflow = Workflow.get(self.formdef.workflow_id) - if pristine_workflow.variables_formdef: - r += htmltext(' (%s)') % _('options') - elif self.formdef.workflow_options: - # there are no variables defined but there are some values - # in workflow_options, this is probably the legacy stuff. - if any((x for x in self.formdef.workflow_options if '*' in x)): - r += htmltext(' (%s)') % _('options') + r += add_option_line('workflow', _('Workflow'), + self.formdef.workflow and self.formdef.workflow.name or '-') - r += ' ' - r += htmltext('(%s)') % _('change') - r += htmltext('
    • ') + if self.formdef.workflow_id: + pristine_workflow = Workflow.get(self.formdef.workflow_id) + if pristine_workflow.variables_formdef: + r += add_option_line('workflow-variables', _('Options'), '') + elif self.formdef.workflow_options: + # there are no variables defined but there are some values + # in workflow_options, this is probably the legacy stuff. + if any((x for x in self.formdef.workflow_options if '*' in x)): + r += add_option_line('workflow-options', _('Options'), '') if self.formdef.workflow.roles: - r += htmltext('
    • %s ') % _('Workflow Roles:') - r += htmltext('
        ') if not self.formdef.workflow_roles: self.formdef.workflow_roles = {} for (wf_role_id, wf_role_label) in self.formdef.workflow.roles.items(): - r += htmltext('
      • %s ') % _('%s:') % wf_role_label role_id = self.formdef.workflow_roles.get(wf_role_id) if role_id: try: role = Role.get(role_id) - r += htmltext('%s') % (role.id, role.name) + role_label = role.name except KeyError: # removed role ? - r += htmltext('') - r += _('Unknown role (%s)') % role_id - r += htmltext('') + role_label = _('Unknown role (%s)') % role_id else: - r += '-' - r += htmltext(' ') - r += htmltext('(%s)') % (wf_role_id, _('change')) - r += htmltext('
      • ') - r += htmltext('
      ') - r += htmltext('
    • ') - - r += self._display_roles(_('User Roles:'), 'roles', 'roles') - r += self._display_roles(_('Backoffice Submission Roles:'), - 'backoffice_submission_roles', - 'backoffice-submission-roles') - - r += htmltext('
    • %s ') % _('Read Access:') - r += '%s' % {'none': _('None'), - 'owner': _('Owner'), - 'roles': _('Roles'), - 'all': _('Everybody')}.get(self.formdef.acl_read, 'none') - r += ' ' - r += htmltext('(%s)') % _('change') + role_label = '-' + r += add_option_line('role/%s' % wf_role_id, + wf_role_label, role_label) + + r += add_option_line('roles', _('User Roles'), + self._get_roles_label('roles')) + r += add_option_line('backoffice-submission-roles', + _('Backoffice Submission Role'), + self._get_roles_label('backoffice_submission_roles')) + + r += add_option_line('acl-read', _('Read Access'), + {'none': _('None'), + 'owner': _('Owner'), + 'roles': _('Roles'), + 'all': _('Everybody')}.get(self.formdef.acl_read, 'none')) r += htmltext('
    ') r += htmltext('
') r += htmltext('
') @@ -474,9 +457,7 @@ class FormDefPage(Directory): r += htmltext('') return r.getvalue() - def _display_roles(self, title, attribute, change_url): - r = TemplateIO(html=True) - r += htmltext('
  • %s ') % title + def _get_roles_label(self, attribute): if getattr(self.formdef, attribute): roles = [] for x in getattr(self.formdef, attribute): @@ -484,18 +465,14 @@ class FormDefPage(Directory): roles.append(logged_users_role().name) else: try: - roles.append(htmltext('%s') % (x, Role.get(x).name)) + roles.append(Role.get(x).name) except KeyError: # removed role ? - roles.append(htmltext('%s') % _('Unknown role (%s)') % role_id) - r += htmltext(', ').join(roles) + roles.append(_('Unknown role (%s)') % role_id) + value = htmltext(', ').join(roles) else: - r += '-' - r += ' ' - r += htmltext('(%s)') % ( - change_url, _('change')) - r += htmltext('
  • ') - return r.getvalue() + value = _('None') + return value def get_sidebar(self): r = TemplateIO(html=True) -- 2.5.0