「新規」と「更新」の 2 つのチケット タイプがあり、それぞれワークフローが異なります。チケット タイプが変更された場合にワークフローも変更され、タイプに一致するように trac.ini ファイルに実装するにはどうすればよいですか。「間違った」ワークフローの現在のステージに関係なく、更新時にワークフローの最初のステージに変更する必要があります。trac バージョン 0.12.3 の使用
1 に答える
プリアンブル: チケットの種類に「new」という名前を付けるのはあまり賢明なアイデアではありません。チケットのステータス「new」と競合するため、混乱を招くからです。
あなたの要求は合理的に聞こえますが、それを実現できる構成についてはまだわかりません。デフォルトでは、Trac は無効なチケットの状態をそのままにしておくか、修正するかを選択します。したがって、既存の Trac コア コードを変更したり、Trac プラグインをインストールしたりしない限り、これは前者とほぼ同等であり、これを行うことはできません。
Trac のモジュラーコンポーネント アーキテクチャは、かなり少ない労力でこれを行うのに最適です。全体として、 ITicketManipulatorインターフェイスの実装が正しい選択であるように思えます。タイミングを気にする必要はありません。チケットが変更されるたびにトリガーされます。興味深い条件と適切なアクションを決定するだけで、「タイプの変更時にワークフローの開始を設定する」を実装するのはかなり簡単です。
ヒント: 各「チケット」インスタンスはTicket
クラス オブジェクトであり、現在の (おそらく変更された) 値と古い (最後に保存された) 値を内部に持つ必要があります。trac.ticket.model
そのオブジェクト内でそれを見つける方法/場所を見つけるために、内部以外を調べないでください。