Projet

Général

Profil

0001-admin-give-a-404-on-workflow-variables-page-when-the.patch

Frédéric Péters, 02 novembre 2020 16:17

Télécharger (2,38 ko)

Voir les différences:

Subject: [PATCH] admin: give a 404 on workflow variables page when there
 aren't any (#48137)

 tests/test_forms_admin_pages.py | 18 +++++++++++++-----
 wcs/admin/forms.py              |  4 +++-
 2 files changed, 16 insertions(+), 6 deletions(-)
tests/test_forms_admin_pages.py
648 648
    create_superuser(pub)
649 649
    create_role()
650 650

  
651
    FormDef.wipe()
652
    formdef = FormDef()
653
    formdef.name = 'form title'
654
    formdef.fields = []
655
    formdef.store()
656

  
657
    app = login(get_app(pub))
658
    resp = app.get('/backoffice/forms/1/')
659
    # check it's not visible
660
    assert '"workflow-variables"' not in resp
661
    # check it doesn't crash anyway
662
    resp = app.get('/backoffice/forms/1/workflow-variables', status=404)
663

  
651 664
    Workflow.wipe()
652 665
    workflow = Workflow(name='Workflow One')
653 666
    from wcs.workflows import WorkflowVariablesFieldsFormDef
......
655 668
    workflow.variables_formdef.fields.append(
656 669
            fields.StringField(id='1', varname='test', label='Test', type='string'))
657 670
    workflow.store()
658

  
659
    FormDef.wipe()
660
    formdef = FormDef()
661
    formdef.name = 'form title'
662
    formdef.fields = []
663 671
    formdef.workflow_id = workflow.id
664 672
    formdef.store()
665 673

  
wcs/admin/forms.py
30 30

  
31 31
from wcs.qommon import _, N_, force_str
32 32
from wcs.qommon import misc
33
from wcs.qommon.errors import *
33
from wcs.qommon.errors import TraversalError
34 34
from wcs.qommon.form import *
35 35
from wcs.qommon.storage import Equal, NotEqual, Null
36 36
from wcs.qommon.backoffice.menu import html_top
......
1463 1463
        return redirect('.')
1464 1464

  
1465 1465
    def workflow_variables(self):
1466
        if not self.formdef.workflow.variables_formdef:
1467
            raise TraversalError()
1466 1468
        self.html_top(title=_('Options'))
1467 1469

  
1468 1470
        form = Form(enctype='multipart/form-data')
1469
-