]> source.dussan.org Git - redmine.git/commitdiff
Fixed: unknown custom field format causes error when editing/bulk editing (#7985).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Thu, 24 Mar 2011 18:24:30 +0000 (18:24 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Thu, 24 Mar 2011 18:24:30 +0000 (18:24 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@5214 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/helpers/custom_fields_helper.rb
test/unit/helpers/custom_fields_helper_test.rb

index 107d0ac873b73d25a186bead6301c93d31d61e06..efe31a415ed8785ee119b8e78e4b8b62c2e31fc0 100644 (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)
index 6baff742c19b539208319e4399714968b0ed6873..587002962ec55c4cdbb25b8ddcbe127cac9e45f2 100644 (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