Projet

Général

Profil

0002-backoffice-unify-workflows-list-37510.patch

Frédéric Péters, 07 novembre 2019 09:25

Télécharger (4,38 ko)

Voir les différences:

Subject: [PATCH 2/3] backoffice: unify workflows list (#37510)

 tests/test_admin_pages.py |  1 -
 wcs/admin/workflows.py    | 44 +++++++++++++++++++++++++--------------
 2 files changed, 28 insertions(+), 17 deletions(-)
tests/test_admin_pages.py
5361 5361
    create_superuser(pub)
5362 5362
    app = login(get_app(pub))
5363 5363
    resp = app.get('/backoffice/workflows/')
5364
    assert '<h2>Workflows for cards</h2>' in resp.body
5365 5364
    resp = resp.click(r'Default \(cards\)')
5366 5365
    assert 'status/recorded/' in resp.body
5367 5366
    assert 'status/deleted/' in resp.body
wcs/admin/workflows.py
1832 1832
            workflows_in_carddef_use = set(carddef_workflows[0].id)
1833 1833
            for carddef in CardDef.select(lightweight=True):
1834 1834
                workflows_in_carddef_use.add(str(carddef.workflow_id))
1835
            form_workflow_title = _('Workflows for forms')
1836 1835
        else:
1837 1836
            carddef_workflows = []
1838 1837
            workflows_in_carddef_use = set()
1839
            form_workflow_title = None
1840 1838

  
1841 1839
        shared_workflows = []
1842 1840
        unused_workflows = []
1841
        workflows = formdef_workflows + carddef_workflows
1843 1842

  
1844 1843
        for workflow in Workflow.select(order_by='name'):
1845 1844
            if (str(workflow.id) in workflows_in_formdef_use and str(workflow.id) in workflows_in_carddef_use):
......
1848 1847
                formdef_workflows.append(workflow)
1849 1848
            elif str(workflow.id) in workflows_in_carddef_use:
1850 1849
                carddef_workflows.append(workflow)
1850
            if (str(workflow.id) in workflows_in_formdef_use or str(workflow.id) in workflows_in_carddef_use):
1851
                workflows.append(workflow)
1851 1852
            else:
1852 1853
                unused_workflows.append(workflow)
1853 1854

  
1854
        def workflow_section(r, title, workflows):
1855
            if workflows:
1856
                if title:
1857
                    r += htmltext('<h2>%s</h2>') % title
1858
                r += htmltext('<ul class="biglist">')
1859
                for workflow in workflows:
1860
                    r += htmltext('<li>')
1861
                    r += htmltext('<strong class="label"><a href="%s/">%s</a></strong>') % (workflow.id, workflow.name)
1862
                    r += htmltext('</li>')
1863
                r += htmltext('</ul>')
1855
        def workflow_section(r, workflows):
1856
            r += htmltext('<div class="bo-block"><ul class="biglist">')
1857
            for workflow in workflows:
1858
                if workflow in shared_workflows:
1859
                    css_class = 'shared-workflow'
1860
                    usage_label = _('Shared workflow')
1861
                elif workflow in formdef_workflows:
1862
                    css_class = 'formdef-workflow'
1863
                    usage_label = _('Forms')
1864
                elif workflow in carddef_workflows:
1865
                    css_class = 'carddef-workflow'
1866
                    usage_label = _('Card models')
1867
                else:
1868
                    css_class = 'unused-workflow'
1869
                    usage_label = None
1870
                r += htmltext('<li class="%s">' % css_class)
1871
                r += htmltext('<strong class="label"><a href="%s/">%s</a></strong>') % (workflow.id, workflow.name)
1872
                if usage_label and carddef_workflows:
1873
                    r += htmltext('<p class="details badge">%s</p>') % usage_label
1874
                r += htmltext('</li>')
1875
            r += htmltext('</ul></div>')
1864 1876

  
1865
        workflow_section(r, _('Workflows for both forms and cards'), shared_workflows)
1866
        workflow_section(r, form_workflow_title, formdef_workflows)
1867
        workflow_section(r, _('Workflows for cards'), carddef_workflows)
1868
        workflow_section(r, _('Unused workflows'), unused_workflows)
1877
        workflow_section(r, workflows)
1878
        if unused_workflows:
1879
            r += htmltext('<h2>%s</h2>') % _('Unused workflows')
1880
            workflow_section(r, unused_workflows)
1869 1881

  
1870 1882
        return r.getvalue()
1871 1883

  
1872
-