TicketChangePluginとTracLightning(2.3.2)
トラックバックいただいた先の変更内容見て、TracLightningのバージョンによっては挙動違いそうだなーと思ったので一つ前の安定バージョンっぽい2.3.2を別途動かしてみた。
2.4.0環境で改造したTicketChangePluginをそのままコピペしてインストールで普通に動かせたのだが、編集結果をdbに書き込んだ後にTracがなにやら不穏なエラーページにジャンプしてしまった。
一応コメント書き換え自体は意図したとおりに完了している模様。エラー内容からして多分日本語の扱いに問題があるのかなぁーと。
いただいた情報参考に、以下の2番目の追加変更でこのエラー自体を抑制する事は出来た、が、う〜ん。。。変更ログ出力を完全に殺してしまっている気が('A`)
+++ C:/TracLight/plugins/svn/ticketchangeplugin/0.11/ticketchange/web_ui.py 日 11 22 02:16:50 2009 @@ -39,7 +39,7 @@ filter = Transformer("//div[@class='change']/div[@class='inlinebuttons']/input[@name='replyto']/@value") return stream | filter.copy(buffer).end() \ - .select("//div[@class='change']/div[@class='inlinebuttons']/input[@value='Reply']") \ + .select("//div[@class='change']/div[@class='inlinebuttons']/input[@type='submit']") \ .after(insert_change_link) return stream @@ -172,7 +172,7 @@ old_author, old_comment = (row[0], row[1]) cursor.execute("UPDATE ticket_change SET newvalue=%s WHERE ticket = %s AND time = %s AND field = 'comment'", (comment, id, time)) db.commit() - self.env.log.info("Ticket #%d comment of '%s' by '%s' has been updated by '%s':\nold value: '%s'\n\nnew value: '%s'\n" \ - % (id, strftime('%A, %d %b %Y %H:%M:%S', localtime(time)), old_author, author, old_comment.replace('\r', ''), comment.replace('\r',''))) + # self.env.log.info("Ticket #%d comment of '%s' by '%s' has been updated by '%s':\nold value: '%s'\n\nnew value: '%s'\n" \ + # % (id, strftime('%A, %d %b %Y %H:%M:%S', localtime(time)), old_author, author, old_comment.replace('\r', ''), comment.replace('\r','')))
ちなみに2.4.0環境では以下のようなログ出力がtrac.logで確認できる。まぁ鯖管理者しか見られないので不要という判断もありかなぁ(でもTicketChangePluginへの要望チケット自体は本家にも出てますね)。
2009-11-22 02:40:42,905 Trac[web_ui] INFO: Ticket #1 comment of 'Sunday, 22 Nov 2009 02:39:14' by 'admin' has been updated by 'admin': old value: 'aaa bbb' new value: 'aaa bbb ccc'