##// END OF EJS Templates
Fixed that the reminder email excludes issues assigned to groups (#11723)....
Jean-Philippe Lang -
r10152:197a14a82e3e
parent child
Show More
@@ -327,7 +327,7 class Mailer < ActionMailer::Base
327 # * :days => how many days in the future to remind about (defaults to 7)
327 # * :days => how many days in the future to remind about (defaults to 7)
328 # * :tracker => id of tracker for filtering issues (defaults to all trackers)
328 # * :tracker => id of tracker for filtering issues (defaults to all trackers)
329 # * :project => id or identifier of project to process (defaults to all projects)
329 # * :project => id or identifier of project to process (defaults to all projects)
330 # * :users => array of user ids who should be reminded
330 # * :users => array of user/group ids who should be reminded
331 def self.reminders(options={})
331 def self.reminders(options={})
332 days = options[:days] || 7
332 days = options[:days] || 7
333 project = options[:project] ? Project.find(options[:project]) : nil
333 project = options[:project] ? Project.find(options[:project]) : nil
@@ -343,6 +343,15 class Mailer < ActionMailer::Base
343 scope = scope.scoped(:conditions => {:tracker_id => tracker.id}) if tracker
343 scope = scope.scoped(:conditions => {:tracker_id => tracker.id}) if tracker
344
344
345 issues_by_assignee = scope.all(:include => [:status, :assigned_to, :project, :tracker]).group_by(&:assigned_to)
345 issues_by_assignee = scope.all(:include => [:status, :assigned_to, :project, :tracker]).group_by(&:assigned_to)
346 issues_by_assignee.keys.each do |assignee|
347 if assignee.is_a?(Group)
348 assignee.users.each do |user|
349 issues_by_assignee[user] ||= []
350 issues_by_assignee[user] += issues_by_assignee[assignee]
351 end
352 end
353 end
354
346 issues_by_assignee.each do |assignee, issues|
355 issues_by_assignee.each do |assignee, issues|
347 reminder(assignee, issues, days).deliver if assignee.is_a?(User) && assignee.active?
356 reminder(assignee, issues, days).deliver if assignee.is_a?(User) && assignee.active?
348 end
357 end
@@ -22,7 +22,7 Available options:
22 * days => number of days to remind about (defaults to 7)
22 * days => number of days to remind about (defaults to 7)
23 * tracker => id of tracker (defaults to all trackers)
23 * tracker => id of tracker (defaults to all trackers)
24 * project => id or identifier of project (defaults to all projects)
24 * project => id or identifier of project (defaults to all projects)
25 * users => comma separated list of user ids who should be reminded
25 * users => comma separated list of user/group ids who should be reminded
26
26
27 Example:
27 Example:
28 rake redmine:send_reminders days=7 users="1,23, 56" RAILS_ENV="production"
28 rake redmine:send_reminders days=7 users="1,23, 56" RAILS_ENV="production"
@@ -508,6 +508,27 class MailerTest < ActiveSupport::TestCase
508 assert_mail_body_match 'Bug #3: Error 281 when updating a recipe', mail
508 assert_mail_body_match 'Bug #3: Error 281 when updating a recipe', mail
509 end
509 end
510
510
511 def test_reminder_should_include_issues_assigned_to_groups
512 with_settings :default_language => 'en' do
513 group = Group.generate!
514 group.users << User.find(2)
515 group.users << User.find(3)
516
517 Issue.create!(:project_id => 1, :tracker_id => 1, :status_id => 1,
518 :subject => 'Assigned to group', :assigned_to => group,
519 :due_date => 5.days.from_now,
520 :author_id => 2)
521 ActionMailer::Base.deliveries.clear
522
523 Mailer.reminders(:days => 7)
524 assert_equal 2, ActionMailer::Base.deliveries.size
525 assert_equal %w(dlopper@somenet.foo jsmith@somenet.foo), ActionMailer::Base.deliveries.map(&:bcc).flatten.sort
526 ActionMailer::Base.deliveries.each do |mail|
527 assert_mail_body_match 'Assigned to group', mail
528 end
529 end
530 end
531
511 def test_mailer_should_not_change_locale
532 def test_mailer_should_not_change_locale
512 Setting.default_language = 'en'
533 Setting.default_language = 'en'
513 # Set current language to italian
534 # Set current language to italian
General Comments 0
You need to be logged in to leave comments. Login now