あるワークフローから別のワークフローに変更するだけの場合は、次の手順に従います。
- [サイトの設定]>[タイプ]に移動します
- ドロップダウンメニューからカスタムコンテンツタイプを選択すると、ページが更新されて現在のワークフローが表示されます
- ドロップダウンから新しいワークフローを選択すると、現在のワークフローの各状態を示すマップが生成されます
- 状態ごとに、新しいワークフローで最も一致する(または最も適切な)状態を選択します
保存すると、カスタムサイトのすべてのオブジェクトが更新され、新しいワークフローが使用されます。元のワークフローのマップ内の各状態について、その状態の既存のコンテンツは、上記の手順4で選択した状態になります。セキュリティ設定のインデックスが再作成され、完了です。
古いワークフローの名前の変更については、ZMIのportal_workflowツールで行うことができます。ただし、ワークフローの人間向けのタイトルのみを変更してください。IDを変更すると、コンテンツのワークフロー履歴に副作用が生じる可能性があります。
編集
さて、あなたのコメントから、あなたはすでに持っているものに加えて、新しいワークフローをタイプに追加しようとしていることがわかります。これを実現するためのサンプルコードを次に示します。
my_type = 'Content' # This is your content portal_type name
my_wf = 'content_workflow_beta'
wf_chain = list(wf_tool.getChainForPortalType(my_type))
if my_wf not in wf_chain:
wf_chain.append(my_wf)
wf_tool.setChainForPortalTypes([my_type], wf_chain)
このコードは、コンテンツタイプとワークフローを定義するパッケージのアップグレード手順で追加できます。ワークフローツールにへの呼び出しを追加するとupdateRoleMappings
、元のワークフローに加えて、標準のPloneUIを介して新しいワークフローを使用するように設定されます。
すでに知っているように、すべてのオブジェクトのワークフロー履歴を手動で更新してワークフローIDの名前を変更することもできますが、これはかなり侵襲的な手順です。