diff --git a/tests/admin_pages/test_workflow.py b/tests/admin_pages/test_workflow.py index 8b0d18e3e..d121dc222 100644 --- a/tests/admin_pages/test_workflow.py +++ b/tests/admin_pages/test_workflow.py @@ -301,6 +301,44 @@ def test_workflows_delete(pub): assert Workflow.count() == 0 +def test_workflows_usage(pub): + Workflow.wipe() + workflow = Workflow(name='foo') + workflow.store() + + create_superuser(pub) + app = login(get_app(pub)) + + resp = app.get('/backoffice/workflows/%s/' % workflow.id) + assert 'Usage' not in resp.text + + formdef = FormDef() + formdef.name = 'Form title' + formdef.workflow = workflow + formdef.fields = [] + formdef.store() + + resp = app.get('/backoffice/workflows/%s/' % workflow.id) + assert 'Usage' in resp.text + assert '/forms/%s/' % formdef.id in resp.text + + carddef = CardDef() + carddef.name = 'Card title' + carddef.workflow = workflow + carddef.fields = [] + carddef.store() + + resp = app.get('/backoffice/workflows/%s/' % workflow.id) + assert 'Usage' in resp.text + assert '/cards/%s/' % carddef.id in resp.text + + formdef.remove_self() + + resp = app.get('/backoffice/workflows/%s/' % workflow.id) + assert 'Usage' in resp.text + assert '/cards/%s/' % carddef.id in resp.text + + def test_workflows_export_import(pub): create_superuser(pub) diff --git a/wcs/templates/wcs/backoffice/workflow.html b/wcs/templates/wcs/backoffice/workflow.html index d1b029c5b..9920b850a 100644 --- a/wcs/templates/wcs/backoffice/workflow.html +++ b/wcs/templates/wcs/backoffice/workflow.html @@ -150,15 +150,28 @@ {% endif %} -{% with formdefs=workflow.formdefs %} +{% with formdefs=workflow.formdefs carddefs=workflow.carddefs %} +{% if formdefs or carddefs %} +
+

{% trans "Usage" %}

+
{% if formdefs %} -
-

{% trans "Forms" %}

{% trans "This workflow is used for the following forms:" %} +

+{% endif %} +{% if carddefs %} +

{% trans "This workflow is used for the following card models:" %} +

+{% endif %} +
{% endif %} {% endwith %} diff --git a/wcs/workflows.py b/wcs/workflows.py index 817835522..1656892c0 100644 --- a/wcs/workflows.py +++ b/wcs/workflows.py @@ -913,10 +913,12 @@ class Workflow(StorableObject): return self.is_default() or super().is_readonly() def formdefs(self, **kwargs): - return list(FormDef.select(lambda x: x.workflow_id == self.id, **kwargs)) + order_by = kwargs.pop('order_by', 'name') + return list(FormDef.select(lambda x: x.workflow_id == self.id, order_by=order_by, **kwargs)) def carddefs(self, **kwargs): - return list(CardDef.select(lambda x: x.workflow_id == self.id, **kwargs)) + order_by = kwargs.pop('order_by', 'name') + return list(CardDef.select(lambda x: x.workflow_id == self.id, order_by=order_by, **kwargs)) class XmlSerialisable: