2011-09-16 2 views
2

私は2つのワークフローを持つオブジェクトを持っています。オブジェクトのワークフローチェーン内のすべてのワークフローの遷移リストの取得

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

私はgetTransitionsForのソースコードに見るものについては、それはあなたのすべてのワークフローのためのすべての遷移を返す必要があります。

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

+0

でもそうです。これは昨日まで私がひどくひどく悩んでいました。もう一回見てきてgetTransitionsFor()が突然輝いていました。私は、誰かが間違っているガードやパーミッションを修正してしまったと感じていますが、私のpythonはそれらを考慮していたはずです。 – Campbell

0

あなたはうまく動作するはずですが何をしています。しかし、@ keulの答えで既に利用可能な方法の使用を検討したいかもしれません。

関連する問題