Workflow チュートリアル (作業中)
私はCMFのWorkflowに関するチュートリアルがとても欲しかったです。まったく見つからないので、自分で書いてやろうとしています。コメントや訂正は送っていただきたいですが、質問に答えている時間はありません(すいません)。
このチュートリアルでは主に以下のプロダクトを使います。
必要とされるプロダクトに関する詳細な説明は、それぞれのインストレーション・ドキュメントを見てください。
このチュートリアルでは、昔からある○×ゲームを使って、Zope CMFでのWorkflowの使い方を示します。ゲームはフル機能ではなく、Workflowのいくつかの側面を示すために使われているだけです。
これはゲームの状態ダイアグラムです。

ゲームの開始時にプレーヤを選択します。ユーザーか胴元か。ゲームのストーリを示しましょう。
読者はPythonプログラミングとZopeの管理画面(ZMI)を知っているべきです。
新しいCMF Siteを作ることから始めます。私はそれをleiraと呼びます。私のラストネームです。

あなたのCMF Siteのportal_workflowツールへ行って、Contentsタブを選び、Add Workflowボタンを押します。

そして、idにtick_tack_toe、新しいWorkflowのタイプとしてdc_workflowを選びます。

Addボタンを押します。

ゲームが取りうる基本的な状態は3つあります。x_turn_state、o_turn_stateとend_stateです。プレーヤー×がいつもゲームを開始するので、x_turn_stateがスタート状態(start state)です。
Workflowで状態(state)を定義しましょう。/leira/portal_workflow/tick_tack_toe/へ行って、Statesタブをクリックします。

以下の状態(states)を追加します。
x_turn_stateを初期状態とするためにそれをマークしてSet Initial Stateボタンを押します。前にアスタリスクが付くでしょう。

以下の遷移(transitions)が定義されます。
以下のTALES式が使われます。:
python:str(state_change.kwargs['oldboard']).replace(state_change.kwargs['posision'], '0')
以下の変数(variables)が定義されます。
スクリプトは、呼ばれるとき、doActionFor()へ渡す引数を取ります。
状態(states)にはパーミッション(permissions)があり、状態ごとにコンテンツのパーミションを変更できます。
例:
非公開状態では編集でき、公開状態では編集できないようにさせる
とある状態(states)のコンテンツをアクションボックスに表示させるための機能。 DCWorkflow の サンプルのワークフローでは、pending 状態のコンテンツを Reviewer のアクションボックスに表示させます。
| Last edited Mon, 11 Sep 2006 21:47:04 +0900 | Edit this page |