BigW Consortium Gitlab

Commit 6b9f221a by gitlabhq

perfomance fix

parent 76294699
...@@ -19,6 +19,8 @@ class IssuesController < ApplicationController ...@@ -19,6 +19,8 @@ class IssuesController < ApplicationController
else @project.issues.opened else @project.issues.opened
end end
@issues = @issues.includes(:author, :project)
respond_to do |format| respond_to do |format|
format.html # index.html.erb format.html # index.html.erb
format.js format.js
...@@ -35,7 +37,7 @@ class IssuesController < ApplicationController ...@@ -35,7 +37,7 @@ class IssuesController < ApplicationController
end end
def show def show
@notes = @issue.notes.order("created_at DESC").limit(20) @notes = @issue.notes.inc_author.order("created_at DESC").limit(20)
@note = @project.notes.new(:noteable => @issue) @note = @project.notes.new(:noteable => @issue)
respond_to do |format| respond_to do |format|
......
...@@ -30,6 +30,8 @@ class Note < ActiveRecord::Base ...@@ -30,6 +30,8 @@ class Note < ActiveRecord::Base
scope :last_week, where("created_at >= :date", :date => (Date.today - 7.days)) scope :last_week, where("created_at >= :date", :date => (Date.today - 7.days))
scope :since, lambda { |day| where("created_at >= :date", :date => (day)) } scope :since, lambda { |day| where("created_at >= :date", :date => (day)) }
scope :fresh, order("created_at DESC") scope :fresh, order("created_at DESC")
scope :inc_author_project, includes(:project, :author)
scope :inc_author, includes(:author)
mount_uploader :attachment, AttachmentUploader mount_uploader :attachment, AttachmentUploader
end end
......
...@@ -74,8 +74,16 @@ class Project < ActiveRecord::Base ...@@ -74,8 +74,16 @@ class Project < ActiveRecord::Base
users_projects.find_by_user_id(user.id) if user users_projects.find_by_user_id(user.id) if user
end end
def fresh_issues(n)
issues.includes(:project, :author).order("created_at desc").first(n)
end
def fresh_notes(n)
notes.inc_author_project.order("created_at desc").first(n)
end
def common_notes def common_notes
notes.where(:noteable_type => ["", nil]) notes.where(:noteable_type => ["", nil]).inc_author_project
end end
def build_commit_note(commit) def build_commit_note(commit)
...@@ -134,8 +142,8 @@ class Project < ActiveRecord::Base ...@@ -134,8 +142,8 @@ class Project < ActiveRecord::Base
def updates(n = 3) def updates(n = 3)
[ [
fresh_commits(n), fresh_commits(n),
issues.last(n), fresh_issues(n),
notes.fresh.limit(n) fresh_notes(n)
].compact.flatten.sort do |x, y| ].compact.flatten.sort do |x, y|
y.created_at <=> x.created_at y.created_at <=> x.created_at
end[0...n] end[0...n]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment