diff options
-rw-r--r-- | lib/plugins/acts_as_customizable/lib/acts_as_customizable.rb | 1 | ||||
-rw-r--r-- | test/functional/projects_controller_test.rb | 24 |
2 files changed, 25 insertions, 0 deletions
diff --git a/lib/plugins/acts_as_customizable/lib/acts_as_customizable.rb b/lib/plugins/acts_as_customizable/lib/acts_as_customizable.rb index 96fdbf8b6..73b2ae847 100644 --- a/lib/plugins/acts_as_customizable/lib/acts_as_customizable.rb +++ b/lib/plugins/acts_as_customizable/lib/acts_as_customizable.rb @@ -146,6 +146,7 @@ module Redmine end self.custom_values = target_custom_values custom_values.each(&:save) + touch if !saved_changes? && custom_values.any?(&:saved_changes?) @custom_field_values_changed = false true end diff --git a/test/functional/projects_controller_test.rb b/test/functional/projects_controller_test.rb index 6be670566..a49e609ce 100644 --- a/test/functional/projects_controller_test.rb +++ b/test/functional/projects_controller_test.rb @@ -994,6 +994,30 @@ class ProjectsControllerTest < Redmine::ControllerTest assert_equal ['documents', 'issue_tracking', 'repository'], Project.find(1).enabled_module_names.sort end + def test_update_custom_field_should_update_updated_on + @request.session[:user_id] = 2 + project = Project.find(1) + project.update_attribute :updated_on, nil + assert_equal 'Stable', project.custom_value_for(3).value + + travel_to Time.current do + post( + :update, + :params => { + :id => 1, + :project => { + :custom_field_values => {'3' => 'Alpha'} + } + } + ) + assert_redirected_to '/projects/ecookbook/settings' + assert_equal 'Successful update.', flash[:notice] + project.reload + assert_equal 'Alpha', project.custom_value_for(3).value + assert_equal Time.current, project.updated_on + end + end + def test_destroy_leaf_project_without_confirmation_should_show_confirmation @request.session[:user_id] = 1 # admin |