summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/plugins/acts_as_customizable/lib/acts_as_customizable.rb1
-rw-r--r--test/functional/projects_controller_test.rb24
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