Patch #23328 » optimize-project-notified-users.patch
| app/models/project.rb | ||
|---|---|---|
| 626 | 626 |
# Returns the users that should be notified on project events |
| 627 | 627 |
def notified_users |
| 628 | 628 |
# TODO: User part should be extracted to User#notify_about? |
| 629 |
users = |
|
| 630 |
members.preload(:principal).select do |m| |
|
| 631 |
m.principal.present? && |
|
| 632 |
(m.mail_notification? || m.principal.mail_notification == 'all') |
|
| 633 |
end |
|
| 634 |
users.collect {|m| m.principal}
|
|
| 629 |
subquery = |
|
| 630 |
members.select(:user_id) |
|
| 631 |
.where.associated(:principal) |
|
| 632 |
.where('members.mail_notification = ? OR users.mail_notification = ?', true, 'all')
|
|
| 633 |
User.where(id: subquery) |
|
| 635 | 634 |
end |
| 636 | 635 | |
| 637 | 636 |
# Returns a scope of all custom fields enabled for project issues |