ITコンサルの日常

ITコンサル会社に勤務する普通のITエンジニアの日常です。

Redmineのチケット一覧csvに注記を含める

対応内容と対応履歴を分けたいとか言われたので、チケットを変更するときに入力できる注記ってのを対応履歴にすればいんじゃね?と思ったのですが、いかんせん一覧に表示されないし、csvにも出力されない。
ってわけで、とりあえずcsvに出力されるように無理矢理やってみたのが下のパッチ。


journalsっていうテーブルに、注記が格納されているので、それを改行でつないで出力するようにしてます。
こういうのやると、そういやRails勉強したよなあとか思い出したりする。

--- C:/app/redmine/app/helpers/issues_helper.rb    (リビジョン 2113)
+++ C:/app/redmine/app/helpers/issues_helper.rb    (作業コピー)
@@ -157,9 +157,19 @@
       custom_fields.each {|f| headers << f.name}
       # Description in the last column
       headers << l(:field_description)
+      headers << 'notes'
       csv << headers.collect {|c| begin; ic.iconv(c.to_s); rescue; c.to_s; end }
       # csv lines
       issues.each do |issue|
+        notes = ''
+        issue.journals.each do |journal|
+          if journal.notes != ''
+            if notes != ''
+              notes += "\r\n"
+            end
+            notes += journal.notes
+          end
+        end
         fields = [issue.id,
                   issue.status.name,
                   issue.project.name,
@@ -179,6 +189,7 @@
                   ]
         custom_fields.each {|f| fields << show_value(issue.custom_value_for(f)) }
         fields << issue.description
+        fields << notes
         csv << fields.collect {|c| begin; ic.iconv(c.to_s); rescue; c.to_s; end }
       end
     end

ちなみに、なんか同じようなことを考えた人がいたらしい。
http://groups.google.com/group/redmine-users-ja/browse_thread/thread/22b11699379f04a3?pli=1