Project

General

Profile

Patch #23328 » optimize-project-notified-users.patch

Go MAEDA, 2024-01-02 10:48

View differences:

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
(3-3/7)