From 3be1e8fa225f0ee2a8957f2b7bf2421b0eaf01db Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 16 Apr 2020 01:55:27 +0000 Subject: [PATCH 2/3] Prevent multiple emails from being sent to a single user --- app/models/mailer.rb | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/app/models/mailer.rb b/app/models/mailer.rb index 20c817450..16bad9feb 100644 --- a/app/models/mailer.rb +++ b/app/models/mailer.rb @@ -93,15 +93,14 @@ class Mailer < ActionMailer::Base # Example: # Mailer.deliver_issue_add(issue) def self.deliver_issue_add(issue) - users = issue.notified_users | issue.notified_watchers - - users.each do |user| - issue_add(user, issue).deliver_later + notified_mentions = issue.notified_mentions + notified_mentions.each do |user| + issue_add(user, issue, 'mentioned').deliver_later end - mentions = issue.notified_mentions + users = (issue.notified_users | issue.notified_watchers) - notified_mentions users.each do |user| - issue_add(user, issue, 'mentioned').deliver_later + issue_add(user, issue).deliver_later end end @@ -135,19 +134,21 @@ class Mailer < ActionMailer::Base # Example: # Mailer.deliver_issue_edit(journal) def self.deliver_issue_edit(journal) - users = journal.notified_users | journal.notified_watchers + notified_mentions = journal.journalized.notified_mentions | journal.notified_mentions + notified_mentions.select! do |user| + journal.notes? || journal.visible_details(user).any? + end + notified_mentions.each do |user| + issue_edit(user, journal, 'mentioned').deliver_later + end + users = (journal.notified_users | journal.notified_watchers) - notified_mentions users.select! do |user| journal.notes? || journal.visible_details(user).any? end users.each do |user| issue_edit(user, journal).deliver_later end - - notified_mentions = journal.journalized.notified_mentions | journal.notified_mentions - notified_mentions.each do |user| - issue_edit(user, journal, 'mentioned').deliver_later - end end # Builds a mail to user about a new document. -- 2.11.0