braintag

公開してしまう備忘録

Trac 0.10.5で、BatchModifyPluginインストール後、カスタムクエリのリンクが消える

Trac 0.10.5の管理をまかされてしまった。

ちまちまチケットを変更するのが面倒なので、カスタムクエリの結果に対して、一気にチケットを修正できるBatchModifyPluginを入れ、こりゃあ便利だな、と思ってたところ、TICKET_BATCH_MODIFY権限が無い人からクレームが。

「カスタムクエリへのリンクが消えてるじゃないか、どうなってんの?」

一般権限で入ると、たしかにカスタムクエリへのリンクが無くなっている。
なんだろう。0.10.5の日本語版との相性だろうか。
ググッっても全く情報が出てこない。うちの環境だけだろうか。

どう設定を変更してもダメだったので、ソースを参照して自分で修正するしかないと観念した。

tracのプラグインどころか、pythonを読むのもいじるのはじめてだったので、カット&トライの繰り返し。(運用中にやるなよ)

batchmod/web_ui.pyを開き、26行目から

    # INavigationContributor methods

    def get_active_navigation_item(self, req):
        return QueryModule(self.env).get_active_navigation_item(req)

    def get_navigation_items(self, req):
#        from trac.ticket.report import ReportModule 
#        if req.perm.has_permission('TICKET_VIEW') and \
#                not self.env.is_component_enabled(ReportModule):
#            yield ('mainnav', 'tickets',
#                   html.A('View Tickets', href=req.href.query()))
#        elif req.perm.has_permission('TICKET_BATCH_MODIFY'):
        yield ('mainnav', 'query',
               html.A('Custom Query', href=req.href.query()))

こんな感じにコメントアウト
一般権限でも無条件で表示させるようにした。

あとはpython setup.py installで終了。

めでたく一般権限でもカスタムクエリが表示できた。

ちゃんとBatchModify画面は表示されていないことも確認済み。