2012-02-29 25 views
0

私は自分自身でTracpluginと書いて、特定の基準に一致するチケットの変更を外部システムに通知しようとしています。今までの私の研究から、私はITicketChangeListener interfaceを実装することが行く方法であることを理解しました。Trac - ITicketChangeListenerのカスタムチケットフィールドにアクセスするにはどうすればいいですか?

メソッドの定義はすべて非常に単純ですが、私にとってまっすぐではないことはTicket objectであり、カスタムフィールドにアクセスすることです。これは動作しませんと言う

# t is a Ticket object 
theStatus = t['status'] 

私が見つけたいくつかのソース:私はあなたが単にとして、デフォルトのチケットのフィールドにアクセスできることを学んできた

myCustomField = t['my_custom_field'] 

はまだそれらのどれもが私に教えていないものをとなります。

さらに、私はticket_changed()メソッドのold_values引数に私のカスタムフィールドがあるのか​​、そこに別の何かをしなければならないかどうかを知る必要があります。

私はかなり新しいPythonと非常に Tracに新しいです。正しい方向で私を指す助けがあれば感謝します。

答えて

3

ソースが間違っているcustom ticket fieldsです。名前による値のアプローチが有効です。 * old_values *にはカスタムフィールドを含むすべてのフィールド値も含まれます。それでおしまい。

変更リスナーのコーディング例については、TracAnnouncerソースを参照してください。

+0

そうです。それはうまくいった。しかし、私はまだ 'old_values'に存在しないキーには問題がありました。だから私は最初にチェックしなければならなかった:old_valuesの "my_custom_field": –

+0

右は、チケットフィールドの値が変更された場合にのみ、キーは 'old_values'に存在します。 – RjOllos

関連する問題