Merge branch 'master' of https://gitlab.com/gitlab-org/gitlab-ce
This commit is contained in:
commit
74cd56b5d7
5 changed files with 25 additions and 9 deletions
|
@ -1,4 +1,6 @@
|
|||
Please view this file on the master branch, on stable branches it's out of date.
|
||||
v 8.13.0 (unreleased)
|
||||
- Speed-up group milestones show page
|
||||
|
||||
v 8.13.0 (unreleased)
|
||||
|
||||
|
|
|
@ -8,7 +8,8 @@ class GlobalMilestone
|
|||
milestones = milestones.group_by(&:title)
|
||||
|
||||
milestones.map do |title, milestones|
|
||||
new(title, milestones)
|
||||
milestones_relation = Milestone.where(id: milestones.map(&:id))
|
||||
new(title, milestones_relation)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -31,7 +32,7 @@ class GlobalMilestone
|
|||
end
|
||||
|
||||
def projects
|
||||
@projects ||= Project.for_milestones(milestones.map(&:id))
|
||||
@projects ||= Project.for_milestones(milestones.select(:id))
|
||||
end
|
||||
|
||||
def state
|
||||
|
@ -53,19 +54,19 @@ class GlobalMilestone
|
|||
end
|
||||
|
||||
def issues
|
||||
@issues ||= Issue.of_milestones(milestones.map(&:id)).includes(:project)
|
||||
@issues ||= Issue.of_milestones(milestones.select(:id)).includes(:project, :assignee, :labels)
|
||||
end
|
||||
|
||||
def merge_requests
|
||||
@merge_requests ||= MergeRequest.of_milestones(milestones.map(&:id)).includes(:target_project)
|
||||
@merge_requests ||= MergeRequest.of_milestones(milestones.select(:id)).includes(:target_project, :assignee, :labels)
|
||||
end
|
||||
|
||||
def participants
|
||||
@participants ||= milestones.map(&:participants).flatten.compact.uniq
|
||||
@participants ||= milestones.includes(:participants).map(&:participants).flatten.compact.uniq
|
||||
end
|
||||
|
||||
def labels
|
||||
@labels ||= GlobalLabel.build_collection(milestones.map(&:labels).flatten)
|
||||
@labels ||= GlobalLabel.build_collection(milestones.includes(:labels).map(&:labels).flatten)
|
||||
.sort_by!(&:title)
|
||||
end
|
||||
|
||||
|
|
11
db/migrate/20160920160832_add_index_to_labels_title.rb
Normal file
11
db/migrate/20160920160832_add_index_to_labels_title.rb
Normal file
|
@ -0,0 +1,11 @@
|
|||
class AddIndexToLabelsTitle < ActiveRecord::Migration
|
||||
include Gitlab::Database::MigrationHelpers
|
||||
|
||||
DOWNTIME = false
|
||||
|
||||
disable_ddl_transaction!
|
||||
|
||||
def change
|
||||
add_concurrent_index :labels, :title
|
||||
end
|
||||
end
|
|
@ -11,7 +11,7 @@
|
|||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(version: 20160915042921) do
|
||||
ActiveRecord::Schema.define(version: 20160920160832) do
|
||||
|
||||
# These are extensions that must be enabled in order to support this database
|
||||
enable_extension "plpgsql"
|
||||
|
@ -521,6 +521,7 @@ ActiveRecord::Schema.define(version: 20160915042921) do
|
|||
|
||||
add_index "labels", ["priority"], name: "index_labels_on_priority", using: :btree
|
||||
add_index "labels", ["project_id"], name: "index_labels_on_project_id", using: :btree
|
||||
add_index "labels", ["title"], name: "index_labels_on_title", using: :btree
|
||||
|
||||
create_table "lfs_objects", force: :cascade do |t|
|
||||
t.string "oid", null: false
|
||||
|
|
|
@ -50,8 +50,9 @@ describe GlobalMilestone, models: true do
|
|||
milestone1_project2,
|
||||
milestone1_project3,
|
||||
]
|
||||
milestones_relation = Milestone.where(id: milestones.map(&:id))
|
||||
|
||||
@global_milestone = GlobalMilestone.new(milestone1_project1.title, milestones)
|
||||
@global_milestone = GlobalMilestone.new(milestone1_project1.title, milestones_relation)
|
||||
end
|
||||
|
||||
it 'has exactly one group milestone' do
|
||||
|
@ -67,7 +68,7 @@ describe GlobalMilestone, models: true do
|
|||
let(:milestone) { create(:milestone, title: "git / test", project: project1) }
|
||||
|
||||
it 'strips out slashes and spaces' do
|
||||
global_milestone = GlobalMilestone.new(milestone.title, [milestone])
|
||||
global_milestone = GlobalMilestone.new(milestone.title, Milestone.where(id: milestone.id))
|
||||
|
||||
expect(global_milestone.safe_title).to eq('git-test')
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue