summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGo MAEDA <maeda@farend.jp>2020-03-20 02:37:33 +0000
committerGo MAEDA <maeda@farend.jp>2020-03-20 02:37:33 +0000
commit6323ef26ff889615e87cc5732ec9e72f8f5a620b (patch)
tree1a095a3dc0d9027bdb3ce8d522c328fbb4a7d0d2
parentf9b5eeb1afe6fff3c1472f0986be675bd21f1058 (diff)
downloadredmine-6323ef26ff889615e87cc5732ec9e72f8f5a620b.tar.gz
redmine-6323ef26ff889615e87cc5732ec9e72f8f5a620b.zip
Merged r19588 and r19589 from trunk to 4.0-stable (#33085).
git-svn-id: http://svn.redmine.org/redmine/branches/4.0-stable@19591 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/controllers/enumerations_controller.rb2
-rw-r--r--test/functional/enumerations_controller_test.rb15
2 files changed, 16 insertions, 1 deletions
diff --git a/app/controllers/enumerations_controller.rb b/app/controllers/enumerations_controller.rb
index a04d7b184..7a0ab0214 100644
--- a/app/controllers/enumerations_controller.rb
+++ b/app/controllers/enumerations_controller.rb
@@ -107,7 +107,7 @@ class EnumerationsController < ApplicationController
def enumeration_params
# can't require enumeration on #new action
- cf_ids = @enumeration.available_custom_fields.map{|c| c.id.to_s}
+ cf_ids = @enumeration.available_custom_fields.map {|c| c.multiple? ? {c.id.to_s => []} : c.id.to_s}
params.permit(:enumeration => [:name, :active, :is_default, :position, :custom_field_values => cf_ids])[:enumeration]
end
end
diff --git a/test/functional/enumerations_controller_test.rb b/test/functional/enumerations_controller_test.rb
index 8e411c53e..5125e46b2 100644
--- a/test/functional/enumerations_controller_test.rb
+++ b/test/functional/enumerations_controller_test.rb
@@ -82,6 +82,21 @@ class EnumerationsControllerTest < Redmine::ControllerTest
assert_equal "sample", Enumeration.find_by(:name => 'Sample').custom_field_values.last.value
end
+ def test_create_with_multiple_select_list_custom_fields
+ custom_field = IssuePriorityCustomField.generate!(:field_format => 'list', :multiple => true, :possible_values => ['1', '2', '3', '4'])
+ assert_difference 'IssuePriority.count' do
+ post :create, :params => {
+ :enumeration => {
+ :type => 'IssuePriority',
+ :name => 'Sample',
+ :custom_field_values => {custom_field.id.to_s => ['1', '2']}
+ }
+ }
+ end
+ assert_redirected_to '/enumerations'
+ assert_equal ['1', '2'].sort, Enumeration.find_by(:name => 'Sample').custom_field_values.last.value.sort
+ end
+
def test_create_with_failure
assert_no_difference 'IssuePriority.count' do
post :create, :params => {