perfomance fix
This commit is contained in:
parent
762946995e
commit
6b9f221a27
|
@ -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
|
||||||
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
|
||||||
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
|
||||||
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
|
||||||
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]
|
||||||
|
|
Loading…
Reference in a new issue