]> source.dussan.org Git - redmine.git/commitdiff
Fixes that watcher groups on new issue form get dereferenced on validation error...
authorMarius Balteanu <marius.balteanu@zitec.com>
Sun, 28 Apr 2024 07:12:32 +0000 (07:12 +0000)
committerMarius Balteanu <marius.balteanu@zitec.com>
Sun, 28 Apr 2024 07:12:32 +0000 (07:12 +0000)
Patch by Felix Schäfer (@felix) and Kenta Kumojima (@kumojima).

git-svn-id: https://svn.redmine.org/redmine/trunk@22792 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/helpers/watchers_helper.rb
test/functional/issues_controller_test.rb

index d01d4858d1dc0c068b5e00082c42faa9df42f53f..c9d14d95fa78e6b796e85e7c2d2d2ab2b166c699 100644 (file)
@@ -74,7 +74,7 @@ module WatchersHelper
 
   def watchers_checkboxes(object, users, checked=nil)
     users.map do |user|
-      c = checked.nil? ? object.watched_by?(user) : checked
+      c = checked.nil? ? object.watcher_user_ids.include?(user.id) : checked
       tag = check_box_tag 'issue[watcher_user_ids][]', user.id, c, :id => nil
       content_tag 'label', "#{tag} #{h(user)}".html_safe,
                   :id => "issue_watcher_user_ids_#{user.id}",
index cce8ddc625290f2acbc816074c74b743e7cca262..014a2d835e11c2fccb873aae50615a632e0878c0 100644 (file)
@@ -4778,6 +4778,24 @@ class IssuesControllerTest < Redmine::ControllerTest
     assert_select 'input[name=?][value="8"][checked=checked]', 'issue[watcher_user_ids][]'
   end
 
+  def test_post_create_with_failure_should_not_dereference_group_watchers
+    @request.session[:user_id] = 1
+    post(
+      :create,
+      :params => {
+        :project_id => 5,
+        :issue => {
+          :tracker_id => 1,
+          :watcher_user_ids => ['11']
+        }
+      }
+    )
+    assert_response :success
+
+    assert_select 'input[name=?][value="8"][checked=checked]', 'issue[watcher_user_ids][]', 0
+    assert_select 'input[name=?][value="11"][checked=checked]', 'issue[watcher_user_ids][]', 1
+  end
+
   def test_post_create_should_ignore_non_safe_attributes
     @request.session[:user_id] = 2
     assert_nothing_raised do