[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[kagemai-users:0049] Re: 要望2
福岡です。
UEHARA Junji san wrote:
| ・WEB経由のレポート編集・変更で、その変更に限ってはメール通知を抑制で
| きるようなオプション(チェックボックス)があると嬉しい。
| 状態変化の種類、内容の変更の軽重によって、必ずしも全員に周知
| しなくて良いような変更があり得るため。
こういった要求については理解できます。実は BTS の 32 でもあがっていますが、
メリットよりもデメリットのほうが大きそうということで却下しています。
私が危惧しているデメリットよりも、この機能を入れることによるメリットが
大きかったり、この機能がないことによって大きな問題があるのであれば、
検討する余地はあると思っています。
| ・WWW経由のレポート作成・編集・変更時のメール通知において、「CC:」アド
| レスをレポートごとに記入・指定できると嬉しい。問題の発生を通常の宛先
| アドレスに含まれていない別の人、もしくは別のメーリングリストに対して
| 通知するためです。
こちらは、そのうち入れたいと思います。
| あとExcelないしCSVへのエクスポート機能も欲しいですね..。
あるプロジェクトのデータを別の形式で出力するのは、Ruby で
コードをちょっと書けば、それほど難しくありません。
# そのちょっとを書きたいかどうかはともかく。
CSV なら、だいたい以下のような感じでできます。
まあ、出力部分が大雑把すぎるので、たぶんそのままでは使えませんけど。
おそらく、String#dump ではなくて、CSV の形式に添った形で ',' や
'"' などをエスケープしたり、場合によっては文字コードを変換したり
という処理が必要なんでしょう。
CSV で、',' や '"' を普通はどうエスケープするのかとか、フィールドの
中に改行があるときはどうするのかなど、よく知らないので、とりあえず
今はここまで。
#!/usr/bin/ruby -w
## usage: ruby export.rb project-id
kagemai_root = "/home/fukuoka/kagemai" # setup
config_file = "#{kagemai_root}/kagemai.conf" # setup
$: << "#{kagemai_root}/lib"
require 'kagemai/config'
Kagemai::Config.initialize(kagemai_root, config_file)
require 'kagemai/bts'
require 'kagemai/project'
require 'kagemai/message_bundle'
module Kagemai
def self.export(project_id)
MessageBundle.open(Config[:resource_dir],
Config[:language],
Config[:message_bundle_name])
bts = BTS.new(Config[:project_dir])
project = bts.open_project(project_id)
project.each do |report|
report.each do |message|
line = [report.id, message.id]
message.each do |etype, etype_id, etyep_name, value|
line << value.to_s.dump
end
puts line.join(',') # Message 1つを1行で出力
end
end
end
end
if $0 == __FILE__ then
unless ARGV.size == 1 then
puts "usage: ruby export.rb project-id"
exit 1
end
project_id = ARGV.shift
Kagemai::export(project_id)
end
--
福岡ともゆき <fukuoka@xxxxxxxxxxxxx>
http://www.daifukuya.com/