]> source.dussan.org Git - redmine.git/commitdiff
Merged r15532 and r15533 (#23054).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 18 Jun 2016 06:02:32 +0000 (06:02 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 18 Jun 2016 06:02:32 +0000 (06:02 +0000)
git-svn-id: http://svn.redmine.org/redmine/branches/3.2-stable@15538 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/timelog_controller.rb
test/functional/timelog_controller_test.rb

index 597160191ee4eebf3c9cc4365268ee84b6c918fe..59efb9d7808cd291be1b70d1b7a0612cc24d81c6 100644 (file)
@@ -275,7 +275,16 @@ private
   def parse_params_for_bulk_time_entry_attributes(params)
     attributes = (params[:time_entry] || {}).reject {|k,v| v.blank?}
     attributes.keys.each {|k| attributes[k] = '' if attributes[k] == 'none'}
-    attributes[:custom_field_values].reject! {|k,v| v.blank?} if attributes[:custom_field_values]
+    if custom = attributes[:custom_field_values]
+      custom.reject! {|k,v| v.blank?}
+      custom.keys.each do |k|
+        if custom[k].is_a?(Array)
+          custom[k] << '' if custom[k].delete('__none__')
+        else
+          custom[k] = '' if custom[k] == '__none__'
+        end
+      end
+    end
     attributes
   end
 end
index ce6f5936c52fa3e381931a49b902825ae72a255e..c3e96793df030b8a34718170222782390cb1cd13 100644 (file)
@@ -527,6 +527,15 @@ class TimelogControllerTest < ActionController::TestCase
     assert_equal ["0", "0"], TimeEntry.where(:id => [1, 2]).collect {|i| i.custom_value_for(10).value}
   end
 
+  def test_bulk_update_clear_custom_field
+    field = TimeEntryCustomField.generate!(:field_format => 'string')
+    @request.session[:user_id] = 2
+    post :bulk_update, :ids => [1, 2], :time_entry => { :custom_field_values => {field.id.to_s => '__none__'} }
+
+    assert_response 302
+    assert_equal ["", ""], TimeEntry.where(:id => [1, 2]).collect {|i| i.custom_value_for(field).value}
+  end
+
   def test_post_bulk_update_should_redirect_back_using_the_back_url_parameter
     @request.session[:user_id] = 2
     post :bulk_update, :ids => [1,2], :back_url => '/time_entries'