Fixed: unknown custom field format causes error when editing/bulk editing (#7985).

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@5214 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2011-03-24 18:24:30 +00:00
parent 4d7e61c49e
commit c17ff5f024
2 changed files with 22 additions and 5 deletions

View File

@ -1,5 +1,5 @@
# redMine - project management software
# Copyright (C) 2006 Jean-Philippe Lang
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@ -37,7 +37,7 @@ module CustomFieldsHelper
field_id = "#{name}_custom_field_values_#{custom_field.id}"
field_format = Redmine::CustomFieldFormat.find_by_name(custom_field.field_format)
case field_format.edit_as
case field_format.try(:edit_as)
when "date"
text_field_tag(field_name, custom_value.value, :id => field_id, :size => 10) +
calendar_for(field_id)
@ -72,7 +72,7 @@ module CustomFieldsHelper
field_name = "#{name}[custom_field_values][#{custom_field.id}]"
field_id = "#{name}_custom_field_values_#{custom_field.id}"
field_format = Redmine::CustomFieldFormat.find_by_name(custom_field.field_format)
case field_format.edit_as
case field_format.try(:edit_as)
when "date"
text_field_tag(field_name, '', :id => field_id, :size => 10) +
calendar_for(field_id)

View File

@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2009 Jean-Philippe Lang
# Copyright (C) 2006-2011 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@ -26,4 +26,21 @@ class CustomFieldsHelperTest < HelperTestCase
assert_equal 'Yes', format_value('1', 'bool')
assert_equal 'No', format_value('0', 'bool')
end
def test_unknow_field_format_should_be_edited_as_string
field = CustomField.new(:field_format => 'foo')
value = CustomValue.new(:value => 'bar', :custom_field => field)
field.id = 52
assert_equal '<input id="object_custom_field_values_52" name="object[custom_field_values][52]" type="text" value="bar" />',
custom_field_tag('object', value)
end
def test_unknow_field_format_should_be_bulk_edited_as_string
field = CustomField.new(:field_format => 'foo')
field.id = 52
assert_equal '<input id="object_custom_field_values_52" name="object[custom_field_values][52]" type="text" value="" />',
custom_field_tag_for_bulk_edit('object', field)
end
end