Display of multi custom fields.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@8726 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
0cd62a3c77
commit
79b12c73d9
|
@ -117,7 +117,7 @@ module CustomFieldsHelper
|
|||
# Return a string used to display a custom value
|
||||
def format_value(value, field_format)
|
||||
if value.is_a?(Array)
|
||||
value.collect {|v| format_value(v, field_format)}.join(', ')
|
||||
value.collect {|v| format_value(v, field_format)}.compact.sort.join(', ')
|
||||
else
|
||||
Redmine::CustomFieldFormat.format_value(value, field_format)
|
||||
end
|
||||
|
|
|
@ -320,7 +320,7 @@ module IssuesHelper
|
|||
issues.each do |issue|
|
||||
col_values = columns.collect do |column|
|
||||
s = if column.is_a?(QueryCustomFieldColumn)
|
||||
cv = issue.custom_values.detect {|v| v.custom_field_id == column.custom_field.id}
|
||||
cv = issue.custom_field_values.detect {|v| v.custom_field_id == column.custom_field.id}
|
||||
show_value(cv)
|
||||
else
|
||||
value = issue.send(column.name)
|
||||
|
|
|
@ -118,7 +118,7 @@ module TimelogHelper
|
|||
entry.hours.to_s.gsub('.', decimal_separator),
|
||||
entry.comments
|
||||
]
|
||||
fields += custom_fields.collect {|f| show_value(entry.custom_value_for(f)) }
|
||||
fields += custom_fields.collect {|f| show_value(entry.custom_field_values.detect {|v| v.custom_field_id == f.id}) }
|
||||
|
||||
csv << fields.collect {|c| Redmine::CodesetUtil.from_utf8(
|
||||
c.to_s,
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<% end %>
|
||||
|
||||
<p><%=h version.description %></p>
|
||||
<% if version.custom_values.any? %>
|
||||
<% if version.custom_field_values.any? %>
|
||||
<ul>
|
||||
<% version.custom_field_values.each do |custom_value| %>
|
||||
<% if custom_value.value.present? %>
|
||||
|
|
|
@ -214,7 +214,7 @@ module Redmine
|
|||
# fetch all the row values
|
||||
col_values = query.columns.collect do |column|
|
||||
s = if column.is_a?(QueryCustomFieldColumn)
|
||||
cv = issue.custom_values.detect {|v| v.custom_field_id == column.custom_field.id}
|
||||
cv = issue.custom_field_values.detect {|v| v.custom_field_id == column.custom_field.id}
|
||||
show_value(cv)
|
||||
else
|
||||
value = issue.send(column.name)
|
||||
|
|
|
@ -337,6 +337,18 @@ class IssuesControllerTest < ActionController::TestCase
|
|||
assert_equal assigns(:query).available_columns.size + 1, lines[0].split(',').size
|
||||
end
|
||||
|
||||
def test_index_csv_with_multi_column_field
|
||||
CustomField.find(1).update_attribute :multiple, true
|
||||
issue = Issue.find(1)
|
||||
issue.custom_field_values = {1 => ['MySQL', 'Oracle']}
|
||||
issue.save!
|
||||
|
||||
get :index, :format => 'csv', :columns => 'all'
|
||||
assert_response :success
|
||||
lines = @response.body.chomp.split("\n")
|
||||
assert lines.detect {|line| line.include?('"MySQL, Oracle"')}
|
||||
end
|
||||
|
||||
def test_index_csv_big_5
|
||||
with_settings :default_language => "zh-TW" do
|
||||
str_utf8 = "\xe4\xb8\x80\xe6\x9c\x88"
|
||||
|
@ -1086,7 +1098,7 @@ class IssuesControllerTest < ActionController::TestCase
|
|||
assert_response :success
|
||||
|
||||
# TODO: should display links
|
||||
assert_tag :td, :content => 'John Smith, Dave Lopper'
|
||||
assert_tag :td, :content => 'Dave Lopper, John Smith'
|
||||
end
|
||||
|
||||
def test_show_atom
|
||||
|
|
|
@ -563,6 +563,18 @@ class TimelogControllerTest < ActionController::TestCase
|
|||
assert @response.body.include?("\n04/21/2007,redMine Admin,Design,eCookbook,3,Bug,Error 281 when updating a recipe,1.0,\"\",\"\"\n")
|
||||
end
|
||||
|
||||
def test_index_csv_export_with_multi_custom_field
|
||||
field = TimeEntryCustomField.create!(:name => 'Test', :field_format => 'list',
|
||||
:multiple => true, :possible_values => ['value1', 'value2'])
|
||||
entry = TimeEntry.find(1)
|
||||
entry.custom_field_values = {field.id => ['value1', 'value2']}
|
||||
entry.save!
|
||||
|
||||
get :index, :project_id => 1, :format => 'csv'
|
||||
assert_response :success
|
||||
assert_include '"value1, value2"', @response.body
|
||||
end
|
||||
|
||||
def test_csv_big_5
|
||||
user = User.find_by_id(3)
|
||||
user.language = "zh-TW"
|
||||
|
|
Loading…
Reference in New Issue