Notify project members when a message is posted if they want to receive notifications for everything on the project (#1079).
git-svn-id: http://redmine.rubyforge.org/svn/trunk@1368 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
67e7758185
commit
e55c1d82e6
@ -21,6 +21,8 @@ class MessageObserver < ActiveRecord::Observer
|
|||||||
recipients = ([message.root] + message.root.children).collect {|m| m.author.mail if m.author && m.author.active?}
|
recipients = ([message.root] + message.root.children).collect {|m| m.author.mail if m.author && m.author.active?}
|
||||||
# send notification to the board watchers
|
# send notification to the board watchers
|
||||||
recipients += message.board.watcher_recipients
|
recipients += message.board.watcher_recipients
|
||||||
|
# send notification to project members who want to be notified
|
||||||
|
recipients += message.board.project.recipients
|
||||||
recipients = recipients.compact.uniq
|
recipients = recipients.compact.uniq
|
||||||
Mailer.deliver_message_posted(message, recipients) if !recipients.empty? && Setting.notified_events.include?('message_posted')
|
Mailer.deliver_message_posted(message, recipients) if !recipients.empty? && Setting.notified_events.include?('message_posted')
|
||||||
end
|
end
|
||||||
|
@ -54,6 +54,9 @@ class MessagesControllerTest < Test::Unit::TestCase
|
|||||||
|
|
||||||
def test_post_new
|
def test_post_new
|
||||||
@request.session[:user_id] = 2
|
@request.session[:user_id] = 2
|
||||||
|
ActionMailer::Base.deliveries.clear
|
||||||
|
Setting.notified_events << 'message_posted'
|
||||||
|
|
||||||
post :new, :board_id => 1,
|
post :new, :board_id => 1,
|
||||||
:message => { :subject => 'Test created message',
|
:message => { :subject => 'Test created message',
|
||||||
:content => 'Message body'}
|
:content => 'Message body'}
|
||||||
@ -63,6 +66,15 @@ class MessagesControllerTest < Test::Unit::TestCase
|
|||||||
assert_equal 'Message body', message.content
|
assert_equal 'Message body', message.content
|
||||||
assert_equal 2, message.author_id
|
assert_equal 2, message.author_id
|
||||||
assert_equal 1, message.board_id
|
assert_equal 1, message.board_id
|
||||||
|
|
||||||
|
mail = ActionMailer::Base.deliveries.last
|
||||||
|
assert_kind_of TMail::Mail, mail
|
||||||
|
assert_equal "[#{message.board.project.name} - #{message.board.name}] Test created message", mail.subject
|
||||||
|
assert mail.body.include?('Message body')
|
||||||
|
# author
|
||||||
|
assert mail.bcc.include?('jsmith@somenet.foo')
|
||||||
|
# project member
|
||||||
|
assert mail.bcc.include?('dlopper@somenet.foo')
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_get_edit
|
def test_get_edit
|
||||||
|
Loading…
x
Reference in New Issue
Block a user