<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
  <title>iddy.jp - RSS feeds by matobaa</title> 
  <link>http://iddy.jp/rss/blog/matobaa/</link> 
  <description>RSS feeds by matobaa hosted at http://iddy.jp/</description>
  <language>ja</language>
  <item>
    <title>2012-01-14のツッコミ[1] (matobaa)</title> 
    <description>
    <![CDATA[
    ツッコミのテスト
    ]]>
    </description>
    <link>http://matobaa.tdiary.net/20120114.html#c01</link> 
    <pubDate>Sun, 15 Jan 2012 20:39:54 +0900</pubDate>
   </item>
  <item>
    <title>ワークフローをまわすとき「承認日」が欲しい。なんてな。</title> 
    <description>
    <![CDATA[
    Invalid Text旧来の稟議書には必ず入ってるので、それをそのままtracに移行する場合「承認日」「承認者」とかいうフィールドを用意して解決しよう、ということになりがち。 すると、「クローズする際は、承認日フィールドに現在の日時を、承認者フィールドに自分の名前を入れてクローズボタンを押す」とかいうルールで運用されることになる。ワークフローシステムをつかえばこのへんは自動的にできるのに、チケットシステムだと泥臭い運用になってしまう。 こんなの絶対おかしいよ。  そこで、tracが持っている「ステータスを変えた日時」を取り出して使おう。SQLはこんなかんじ: SELECT ticket, max(time) FROM ticket_change     WHERE         field = 'status' AND         newvalue = "closed"     GROUP BY ticket; closed以外でも使えるように条件からはずして、tracのレポートから使えるようにビューにしておく: CREATE VIEW status_change AS  ..
    ]]>
    </description>
    <link>http://matobaa.tdiary.net/20120114.html#p01</link> 
    <pubDate>Sun, 15 Jan 2012 01:13:51 +0900</pubDate>
   </item>
  <item>
    <title>日付の表示が変。数字になっちゃう。</title> 
    <description>
    <![CDATA[
    オリジナルのTracを使う場合、チケットの作成日などの日付フィールドは、date, time, datetime, created, modified といった特定のカラム名の場合だけ 日付文字列(YYYY-MM-DDなど)で表示され、それ以外は unixtimeである整数値(16桁の数値)で表示されてしまうという問題がある。具体的には、tracのレポートで、チケットの作成日を created 以外のカラム名で表示しようとした際に、16桁の数字で表示されてしまう。  ネットを検索してみると、SQLiteのdatetime関数で日付文字列に変換する処理を入れる、というやり方が見つかった。こんなかんじ: select id, summary, ticket.time,     datetime(a.time/1e6,'unixepoch') as Accepted_Date,     datetime(c.time/1e6,'unixepoch') as Closed_Date, c.author as Closer from ticket left join status_chang..
    ]]>
    </description>
    <link>http://matobaa.tdiary.net/20120114.html#p02</link> 
    <pubDate>Sun, 15 Jan 2012 01:13:51 +0900</pubDate>
   </item>
  <item>
    <title>ならば、Genshiが createdカラムを日付文字列に変換する処理を流用してみよう</title> 
    <description>
    <![CDATA[
    Invalid TextGenshiが日付文字列に変換する処理そのものはユーザのタイムゾーンを意識した変換をしてくれるのだが、残念ながら「どのカラムを対象とするか」がTracに含まれるGenshiテンプレートでハードコードされている。このファイルをどうにか差し替えてやることで、closed.date なども、ユーザのタイムゾーンを意識した変換ができるはず。 そこで、ITemplateProviderインタフェースを実装したプラグインを作って、ちょっと改造したテンプレートを同じ名前でをプラグイン側から提供するようにしてみたところ、あっさり report_view.html を差し替えることができた。
    ]]>
    </description>
    <link>http://matobaa.tdiary.net/20120114.html#p03</link> 
    <pubDate>Sun, 15 Jan 2012 01:13:51 +0900</pubDate>
   </item>
  <item>
    <title>genshiテンプレートの優先順位</title> 
    <description>
    <![CDATA[
    同じ名前のテンプレートを提供するプラグインが複数あったら、そっちに負ける可能性があるよね。そこで、tracにおいてgenshiテンプレートがどういう順番で読まれるのか。tracdをデバッガで追いかけてみたところ、優先順位は以下のようになっていた: プロジェクト固有のtemplatesフォルダ trac.ini の [inherit]templates_dirで指定したフォルダ trac本体の/trac/templatesフォルダ プラグインが提供するテンプレートフォルダ。プラグイン間の優先順位はエントリポイント名順。  つまり。trac本体の/trac/ticket/templates/フォルダはtrac.ticket.web_ui.TicketModule が提供しているので、アルファベット順で若い名前のプラグインが提供しているテンプレートが優先されることになる。今回差し替えたかった report_view.html は /trac/ticket/templates にあったので、プラグインで割り込むことができた。
    ]]>
    </description>
    <link>http://matobaa.tdiary.net/20120114.html#p04</link> 
    <pubDate>Sun, 15 Jan 2012 01:13:51 +0900</pubDate>
   </item>
</channel>
</rss>
