diff --git a/app/models/project.rb b/app/models/project.rb index 082e83f55..20557b759 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -626,12 +626,11 @@ class Project < ActiveRecord::Base # Returns the users that should be notified on project events def notified_users # TODO: User part should be extracted to User#notify_about? - users = - members.preload(:principal).select do |m| - m.principal.present? && - (m.mail_notification? || m.principal.mail_notification == 'all') - end - users.collect {|m| m.principal} + subquery = + members.select(:user_id) + .where.associated(:principal) + .where('members.mail_notification = ? OR users.mail_notification = ?', true, 'all') + User.where(id: subquery) end # Returns a scope of all custom fields enabled for project issues