Project

General

Profile

Patch #44363 ยป activity-n1-preload.patch

minsuk choi, 2026-08-21 06:52

View differences:

app/models/attachment.rb
57 57
              "ON #{Version.table_name}.project_id = #{Project.table_name}.id " \
58 58
              "OR ( #{Attachment.table_name}.container_type='Project' " \
59 59
              "AND #{Attachment.table_name}.container_id = #{Project.table_name}.id )"
60
          )
60
          ).
61
          preload(:author, :container)
61 62
      end
62 63
  )
63 64
  acts_as_activity_provider(
......
73 74
            "AND #{Document.table_name}.id = #{Attachment.table_name}.container_id " \
74 75
            "LEFT JOIN #{Project.table_name} " \
75 76
            "ON #{Document.table_name}.project_id = #{Project.table_name}.id"
76
          )
77
          ).
78
          preload(:author, :container)
77 79
      end
78 80
  )
79 81

  
app/models/document.rb
30 30
    :title => Proc.new {|o| "#{l(:label_document)}: #{o.title}"},
31 31
    :author =>
32 32
      Proc.new do |o|
33
        o.attachments.reorder("#{Attachment.table_name}.created_on ASC").
34
          first.try(:author)
33
        o.attachments.min_by(&:created_on).try(:author)
35 34
      end,
36 35
    :url =>
37 36
      Proc.new do |o|
38 37
        {:controller => 'documents', :action => 'show', :id => o.id}
39 38
      end
40 39
  )
41
  acts_as_activity_provider :scope => proc {preload(:project)}
40
  acts_as_activity_provider :scope => proc {preload(:project, attachments: :author)}
42 41

  
43 42
  validates_presence_of :project, :title, :category
44 43
  validates_length_of :title, :maximum => 255
app/models/time_entry.rb
45 45
  )
46 46
  acts_as_activity_provider :timestamp => "#{table_name}.created_on",
47 47
                            :author_key => :user_id,
48
                            :scope => proc {joins(:project).preload(:project)}
48
                            :scope => proc {joins(:project).preload(:project, issue: [:tracker, :status])}
49 49
  acts_as_webhookable
50 50

  
51 51
  validates_presence_of :author_id, :user_id, :activity_id, :project_id, :hours, :spent_on
app/models/wiki_content_version.rb
52 52
          "#{table_name}.id").
53 53
        joins("LEFT JOIN #{WikiPage.table_name} ON #{WikiPage.table_name}.id = #{table_name}.page_id " \
54 54
          "LEFT JOIN #{Wiki.table_name} ON #{Wiki.table_name}.id = #{WikiPage.table_name}.wiki_id " \
55
          "LEFT JOIN #{Project.table_name} ON #{Project.table_name}.id = #{Wiki.table_name}.project_id")
55
          "LEFT JOIN #{Project.table_name} ON #{Project.table_name}.id = #{Wiki.table_name}.project_id").
56
        preload(:author, page: {wiki: :project})
56 57
      end
57 58
  )
58 59
  after_destroy :page_update_after_destroy
    (1-1/1)