获取对象工作流程链中所有工作流程的转换列表
我有一个具有两个工作流程的对象。
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
坎贝尔
I have an object with two workflows.
obj.portal_workflow.getTransitionsFor(obj)
returns only transitions from the primary workflow.
I've written the following code to get a list of all possible transitions for all items in a list.
How am I doing?
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
Campbell
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
对于我在 getTransitionsFor 源代码中看到的内容,它必须返回所有工作流程的所有转换。
http://svn.plone.org /svn/plone/Products.CMFPlone/tags/4.1/Products/CMFPlone/WorkflowTool.py
For what I see in the getTransitionsFor source code, it must returns you all transition for all workflows.
http://svn.plone.org/svn/plone/Products.CMFPlone/tags/4.1/Products/CMFPlone/WorkflowTool.py
你所拥有的应该可以正常工作。但您可能需要考虑使用@keul 的答案中已有的方法。
What you have should work just fine. But you may want to consider using the method already available in @keul's answer.