Warning: リポジトリと同期できません (サポートされていないバージョンコントロールシステム "svn です。 Python のライブラリに "svn" が正しくインストールされているか確認してください。)

チケット #191 (new ブログ)

登録: 17 年

最終更新: 14 年

Trac0.11のAPIが変わってる

報告者: hirobe 担当者: weekbuild
優先度: (´ー`*) コンポーネント: TracDoc
バージョン: キーワード:
関係者:

説明

やられた。Trac0.11のAPIが結構変わってる。
Trac0.11devをインスコしガントチャートプラグインを導入してみんとす みて気づきました。

Edgewallのサイト調べると、「 r6139 でAPI変更になったよ。0.11dev用のプラグインは対応してね。詳しくは TracDev/ApiChanges/0.11 見れ。」との記載が。。。

気を取り直して、 TracDev/ApiChanges/0.11 をちょっと読んでみたんですが、
んーでもこれって、0.10から0.11最新版への変更点ですね。0.11の途中版からここへ持っていくのは、結局試行錯誤か。

Mail Archiveプラグインを対応させました。(Trac revision6333で動作確認)
えーと、contextはimportを変えただけでよかったけど、TimelineまわりとAttachement周りの変更が必要でした。

context

from trac.context import Context

from trac.mimeview.api import Context

from trac.context import ResourceNotFound

from trac.resource import *

ITimelineEventProvider

get_timeline_eventsの返却値が変わってる。HTMLを返さなくなった。HTMLはrender_timeline_eventで実装することになった。
#まあ、この変更は歓迎。Timelineを利用してなにかしようとしたときに、このほうが都合がいいし。

Attachmentについて

IPermissionPolicyのcheck_permissionの引数が変わってる。
また、AttachmentModule.attachment_listはなくなり、attachment_dataになった。これにはcontextを渡す必要がある。
#Permission周りはよく調べてないのでよくわからん。いまのところMailArchiveプラグインではパーミッション無視。

APIの変更は次のバージョンにしてくれー、とも思うが、変更しちゃいたい気持ちもよくわかる。
とりあえず、もう変更がないことを祈る。

チケットの履歴

フォローアップ: ↓ 2   更新者: hirobe (17 年 前)

Contextの生成方法もちょっと変化しているみたい。

context = Context(self.env, req)('wiki', pagename)
みたいなのは、
context = Context.from_request(req,'wiki',pagename)
という感じで、from_requestを使えば動くみたい。

↑ 1 への返信   更新者: hirobe (17 年 前)

context = Context(self.env, req)('wiki', pagename)
みたいなのは、
context = Context.from_request(req,'wiki',pagename)
という感じで、from_requestを使えば動くみたい。

ちがった。 context= Resource('wiki', pagename)
みたいに書くべき? よくわからん。。

Note: チケットについてのヘルプは TracTickets を参照 して下さい。