Project

General

Profile

Feature #42589 » optimize-watchers_list-v2.patch

Go MAEDA, 2025-04-22 11:49

View differences:

app/helpers/watchers_helper.rb
48 48
  def watchers_list(object)
49 49
    remove_allowed = User.current.allowed_to?(:"delete_#{object.class.name.underscore}_watchers", object.project)
50 50
    content = ''.html_safe
51
    lis = object.watcher_users.sorted.collect do |user|
51
    scope = object.watcher_users
52
    scope = scope.includes(:email_address) if Setting.gravatar_enabled?
53
    lis = scope.sorted.collect do |user|
52 54
      s = ''.html_safe
53 55
      s << avatar(user, :size => "16").to_s if user.is_a?(User)
54 56
      s << link_to_principal(user, class: user.class.to_s.downcase)
app/models/principal.rb
35 35
           :foreign_key => 'user_id'
36 36
  has_many :projects, :through => :memberships
37 37
  has_many :issue_categories, :foreign_key => 'assigned_to_id', :dependent => :nullify
38
  # Always returns nil for groups
39
  has_one :email_address, lambda {where :is_default => true}, :autosave => true, :foreign_key => 'user_id'
38 40

  
39 41
  validate :validate_status
40 42

  
app/models/user.rb
91 91
  has_one :preference, :dependent => :destroy, :class_name => 'UserPreference'
92 92
  has_one :atom_token, lambda {where "action='feeds'"}, :class_name => 'Token'
93 93
  has_one :api_token, lambda {where "action='api'"}, :class_name => 'Token'
94
  has_one :email_address, lambda {where :is_default => true}, :autosave => true
95 94
  has_many :email_addresses, :dependent => :delete_all
96 95
  belongs_to :auth_source
97 96

  
(2-2/2)