Time entries CSV export should include the tracker and subject of the issue (#18269).

git-svn-id: http://svn.redmine.org/redmine/trunk@13562 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang
2014-11-05 15:23:22 +00:00
parent 4c9fcb34b6
commit b2ba7db4e1
2 changed files with 18 additions and 4 deletions

View File

@@ -122,16 +122,20 @@ module QueriesHelper
end
end
def csv_value(column, issue, value)
def csv_value(column, object, value)
format_object(value, false) do |value|
case value.class.name
when 'Float'
sprintf("%.2f", value).gsub('.', l(:general_csv_decimal_separator))
when 'IssueRelation'
other = value.other_issue(issue)
l(value.label_for(issue)) + " ##{other.id}"
other = value.other_issue(object)
l(value.label_for(object)) + " ##{other.id}"
when 'Issue'
if object.is_a?(TimeEntry)
"#{value.tracker} ##{value.id}: #{value.subject}"
else
value.id
end
else
value
end

View File

@@ -716,4 +716,14 @@ class TimelogControllerTest < ActionController::TestCase
assert_equal 'text/csv; header=present', response.content_type
end
end
def test_index_csv_should_fill_issue_column_with_tracker_id_and_subject
issue = Issue.find(1)
entry = TimeEntry.generate!(:issue => issue, :comments => "Issue column content test")
get :index, :format => 'csv'
line = response.body.split("\n").detect {|l| l.include?(entry.comments)}
assert_not_nil line
assert_include "#{issue.tracker} #1: #{issue.subject}", line
end
end