関連チケットと履歴をCSVに出力するようにしてみました

1,240 views
Skip to first unread message

Jun'ichiH

unread,
Mar 3, 2010, 3:31:44 PM3/3/10
to Redmine Users (japanese)
issues_helper.rb の変更イメージです。

関連チケットは関連元と先を別のテーブルであつかっているのでそこから
もってきました。

r
167a168,171
>
> # Add related issues
> headers << l(:field_related_from)
> headers << l(:field_related_to)
169a174,175
> # Add notes
> headers << l(:field_notes)
172a179,195
>
> # compose "related from" field data
> related_from = ''
> issue.relations_from.each do |relation|
> related_from += relation.relation_type
> related_from += relation.issue_from_id.to_s
> related_from += "\r\n"
> end
>
> # compose "related to" field data
> related_to = ''
> issue.relations_to.each do |relation|
> related_to += relation.relation_type
> related_to += relation.issue_to_id.to_s
> related_to += "\r\n"
> end
>
190a214,215
> fields << related_from
> fields << related_to
191a217,229
> # fields << notes
> # add "notes" field data to last cell
> issue.journals.each do |journal|
> if journal.notes != ''
> notes = ''
> notes += journal.journalized_type
> notes += journal.notes
> fields << notes
> end
> end
>

anemone reef

unread,
Nov 2, 2010, 7:19:48 AM11/2/10
to redmine-...@googlegroups.com
ちょっと古い話ですが、私もチケットの関連付け情報をCSV出力に含めたいと思い、下記を参考にしてみました。
v.1.0.2ですが、下記ソースの訂正箇所がずれたのか、うまくいきませんでした。
(form、to何れも、意図しないIDが出力される)

関連付け情報を含むCSV出力を実現されている方がいらっしゃいましたら、ご教授いただけないでしょうか?

--
2010年3月4日5:31 Jun'ichiH <hira...@gmail.com>:

> --
> このメールは Google グループのグループ「Redmine Users (japanese)」の登録者に送られています。
> このグループに投稿するには、redmine-...@googlegroups.com にメールを送信してください。
> このグループから退会するには、redmine-users-...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/redmine-users-ja?hl=ja からこのグループにアクセスしてください。
>
>

anemone

unread,
Nov 23, 2010, 10:29:14 AM11/23/10
to Redmine Users (japanese)
自己Resですが、解決したので返答しておきます。
ほかのスレッドを参考に、注記も追加しました。

Index: issues_helper.rb
===================================================================
--- issues_helper.rb (revision 247)
+++ issues_helper.rb (revision 248)
@@ -226,6 +226,8 @@
l(:field_done_ratio),
l(:field_estimated_hours),
l(:field_parent_issue),
+ l(:field_issue_to) + "-from",
+ l(:field_issue_to) + "-to",
l(:field_created_on),
l(:field_updated_on)
]
@@ -238,6 +240,16 @@
csv << headers.collect {|c| begin; ic.iconv(c.to_s); rescue;
c.to_s; end }
# csv lines
issues.each do |issue|
+
+ related_from = []
+ issue.relations_from.each do |relation|
+ related_from <<
"#{relation.relation_type}:#{relation.issue_to_id.to_s}"
+ end
+ related_to = []
+ issue.relations_to.each do |relation|
+ related_to <<
"#{relation.relation_type}:#{relation.issue_from_id.to_s}"
+ end
+
fields = [issue.id,
issue.status.name,
issue.project.name,
@@ -253,12 +265,20 @@
issue.done_ratio,
issue.estimated_hours.to_s.gsub('.',
decimal_separator),
issue.parent_id,
+ related_from.join("\r\n"),
+ related_to.join("\r\n"),
format_time(issue.created_on),
format_time(issue.updated_on)
]
custom_fields.each {|f| fields <<
show_value(issue.custom_value_for(f)) }
fields << issue.description
- csv << fields.collect {|c| begin; ic.iconv(c.to_s); rescue;
c.to_s; end }
+
+ Journal.find(:all,
+ :conditions => ["journalized_id= ?", issue.id],
+ :order => :created_on).map(&:notes).uniq.each do
|note|
+ fields << "#{note}\x0D\x0A"
+ end
+ csv << fields.collect {|c| begin; c.to_s.tosjis;
rescue;c.to_s; end }
end
end
export
Reply all
Reply to author
Forward
0 new messages