mirror of
https://github.com/meineerde/redmine.git
synced 2026-02-01 03:57:15 +00:00
Fixed: Custom field is rendered, even if its value is empty (for multiple) (#18654).
git-svn-id: http://svn.redmine.org/redmine/trunk@13864 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
a77d884157
commit
a18c719fcc
@ -117,6 +117,17 @@ module CustomFieldsHelper
|
||||
Redmine::FieldFormat.as_select(custom_field.class.customized_class.name)
|
||||
end
|
||||
|
||||
# Yields the given block for each custom field value of object that should be
|
||||
# displayed, with the custom field and the formatted value as arguments
|
||||
def render_custom_field_values(object, &block)
|
||||
object.visible_custom_field_values.each do |custom_value|
|
||||
formatted = show_value(custom_value)
|
||||
if formatted.present?
|
||||
yield custom_value.custom_field, formatted
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# Renders the custom_values in api views
|
||||
def render_api_custom_values(custom_values, api)
|
||||
api.array :custom_fields do
|
||||
|
||||
@ -31,10 +31,8 @@
|
||||
<li><span class="label"><%=l(:label_subproject_plural)%>:</span>
|
||||
<%= @subprojects.collect{|p| link_to p, project_path(p)}.join(", ").html_safe %></li>
|
||||
<% end %>
|
||||
<% @project.visible_custom_field_values.each do |custom_value| %>
|
||||
<% if !custom_value.value.blank? %>
|
||||
<li><span class="label"><%=h custom_value.custom_field.name %>:</span> <%=h show_value(custom_value) %></li>
|
||||
<% end %>
|
||||
<% render_custom_field_values(@project) do |custom_field, formatted| %>
|
||||
<li><span class="label"><%= custom_field.name %>:</span> <%= formatted %></li>
|
||||
<% end %>
|
||||
</ul>
|
||||
|
||||
|
||||
@ -7,10 +7,8 @@
|
||||
<p><%=h version.description %></p>
|
||||
<% if version.custom_field_values.any? %>
|
||||
<ul>
|
||||
<% version.custom_field_values.each do |custom_value| %>
|
||||
<% if custom_value.value.present? %>
|
||||
<li><%=h custom_value.custom_field.name %>: <%=h show_value(custom_value) %></li>
|
||||
<% end %>
|
||||
<% render_custom_field_values(version) do |custom_field, formatted| %>
|
||||
<li><span class="label"><%= custom_field.name %>:</span> <%= formatted %></li>
|
||||
<% end %>
|
||||
</ul>
|
||||
<% end %>
|
||||
|
||||
@ -351,6 +351,18 @@ class ProjectsControllerTest < ActionController::TestCase
|
||||
assert_select 'li', :text => /Development status/, :count => 0
|
||||
end
|
||||
|
||||
def test_show_should_not_display_blank_custom_fields_with_multiple_values
|
||||
f1 = ProjectCustomField.generate! :field_format => 'list', :possible_values => %w(Foo Bar), :multiple => true
|
||||
f2 = ProjectCustomField.generate! :field_format => 'list', :possible_values => %w(Baz Qux), :multiple => true
|
||||
project = Project.generate!(:custom_field_values => {f2.id.to_s => %w(Qux)})
|
||||
|
||||
get :show, :id => project.id
|
||||
assert_response :success
|
||||
|
||||
assert_select 'li', :text => /#{f1.name}/, :count => 0
|
||||
assert_select 'li', :text => /#{f2.name}/
|
||||
end
|
||||
|
||||
def test_show_should_not_fail_when_custom_values_are_nil
|
||||
project = Project.find_by_identifier('ecookbook')
|
||||
project.custom_values.first.update_attribute(:value, nil)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user