Patch by Mizuki ISHIKAWA. git-svn-id: http://svn.redmine.org/redmine/trunk@21139 e93f8b46-1217-0410-a6f0-8f06a7374b81tags/5.0.0
@@ -413,10 +413,18 @@ class ApplicationController < ActionController::Base | |||
def parse_params_for_bulk_update(params) | |||
attributes = (params || {}).reject {|k, v| v.blank?} | |||
attributes.keys.each {|k| attributes[k] = '' if attributes[k] == 'none'} | |||
if custom = attributes[:custom_field_values] | |||
custom.reject! {|k, v| v.blank?} | |||
custom.keys.each do |k| | |||
end | |||
replace_none_values_with_blank(attributes) | |||
end | |||
def replace_none_values_with_blank(params) | |||
attributes = (params || {})) | |||
attributes.each_key {|k| attributes[k] = '' if attributes[k] == 'none'} | |||
if (custom = attributes[:custom_field_values]) | |||
custom.each_key do |k| | |||
if custom[k].is_a?(Array) | |||
custom[k] << '' if custom[k].delete('__none__') | |||
else |
@@ -561,6 +561,7 @@ class IssuesController < ApplicationController | |||
return false | |||
end | |||
end | |||
issue_attributes = replace_none_values_with_blank(issue_attributes) | |||
@issue.safe_attributes = issue_attributes | |||
@priorities = IssuePriority.active | |||
@allowed_statuses = @issue.new_statuses_allowed_to(User.current) |
@@ -6660,6 +6660,33 @@ class IssuesControllerTest < Redmine::ControllerTest | |||
assert_equal 2, issue.reload.assigned_to_id | |||
end | |||
def test_update_with_value_of_none_should_set_the_values_to_blank | |||
@request.session[:user_id] = 2 | |||
issue = Issue.find(1) | |||
issue.custom_field_values = {1 => 'MySQL'} | |||
issue.assigned_to_id = 2 | |||
issue.save! | |||
put( | |||
:update, | |||
params: { | |||
id: issue.id, | |||
issue: { | |||
assigned_to_id: 'none', | |||
category_id: 'none', | |||
fixed_version_id: 'none', | |||
custom_field_values: { 1 => '__none__' } | |||
} | |||
} | |||
) | |||
issue.reload | |||
assert_nil issue.assigned_to | |||
assert_nil issue.category | |||
assert_nil issue.fixed_version | |||
assert_equal '', issue.custom_field_value(1) | |||
end | |||
def test_get_bulk_edit | |||
@request.session[:user_id] = 2 | |||
get(:bulk_edit, :params => {:ids => [1, 3]}) |