获取对象工作流链中所有工作流的转换列表

时间:2011-09-16 11:10:37

标签: workflow plone

我有一个包含两个工作流程的对象。

obj.portal_workflow.getTransitionsFor(obj)

仅返回主要工作流程的转换。

我编写了以下代码,以获取列表中所有项目的所有可能转换的列表。

我好吗?

transitions = []
for i, obj in enumerate(self.items):
    for w in workflow.getWorkflowsFor(obj):
        for tid,t in w.transitions.items():
            if w.isActionSupported(obj, tid):
                if t not in transitions:
                    transitions.append(t)
return transitions

坎贝尔

2 个答案:

答案 0 :(得分:2)

对于我在getTransitionsFor源代码中看到的内容,它必须返回所有工作流的所有转换。

http://svn.plone.org/svn/plone/Products.CMFPlone/tags/4.1/Products/CMFPlone/WorkflowTool.py

答案 1 :(得分:0)

你所拥有的应该工作得很好。但您可能需要考虑使用@ keul的答案中已有的方法。