Fixed: watchers selection lost when issue creation fails (#5406). #watched_by? was fixed in order to work with #watcher_user_ids= used in controllers on unsaved objects.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3705 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2010-04-30 11:02:27 +00:00
parent e5180884c1
commit a00d1eabd7
2 changed files with 8 additions and 2 deletions

View File

@ -47,6 +47,12 @@ class WatcherTest < ActiveSupport::TestCase
assert Issue.watched_by(@user).include?(@issue)
end
def test_watcher_user_ids
issue = Issue.new
issue.watcher_user_ids = ['1', '3']
assert issue.watched_by?(User.find(1))
end
def test_recipients
@issue.watchers.delete_all
@issue.reload

View File

@ -50,9 +50,9 @@ module Redmine
watching ? add_watcher(user) : remove_watcher(user)
end
# Returns true if object is watched by user
# Returns true if object is watched by +user+
def watched_by?(user)
!!(user && self.watchers.detect {|w| w.user_id == user.id })
!!(user && self.watcher_user_ids.detect {|uid| uid == user.id })
end
# Returns an array of watchers' email addresses