Eager load Issues/MRs project for Milestone.

With this change we avoid doing N+1 queries when viewing Milestone's
Issues/MRs from a Group context.
This commit is contained in:
Rubén Dávila 2016-02-23 12:15:19 -05:00
parent 37d92d0b7b
commit e805becfe8
4 changed files with 7 additions and 4 deletions

View File

@ -76,11 +76,11 @@ class GlobalMilestone
end
def issues
@issues ||= Issue.of_milestones(milestones.map(&:id))
@issues ||= Issue.of_milestones(milestones.map(&:id)).includes(:project)
end
def merge_requests
@merge_requests ||= MergeRequest.of_milestones(milestones.map(&:id))
@merge_requests ||= MergeRequest.of_milestones(milestones.map(&:id)).includes(:target_project)
end
def participants

View File

@ -73,7 +73,7 @@
= render 'shared/milestones/issues_tab', unassigned: @milestone.opened_issues.unassigned, assigned: @milestone.opened_issues.assigned, closed: @milestone.closed_issues
.tab-pane#tab-merge-requests
= render 'shared/milestones/merge_requests_tab', unassigned: @milestone.opened_merge_requests.unassigned, assigned: @milestone.opened_merge_requests.assigned, closed: @milestone.closed_merge_requests, merged: @milestone.merge_requests.merged
= render 'shared/milestones/merge_requests_tab', unassigned: @milestone.opened_merge_requests.unassigned, assigned: @milestone.opened_merge_requests.assigned, closed: @milestone.merge_requests.closed, merged: @milestone.merge_requests.merged
.tab-pane#tab-participants
.gray-content-block.middle-block

View File

@ -1,4 +1,6 @@
- project = issue.project
-# @project is present when viewing Project's milestone
- project = @project || issue.project
%li{ id: dom_id(issue, 'sortable'), class: 'issue-row', 'data-iid' => issue.iid, 'data-url' => issue_path(issue) }
%span
= link_to_gfm issue.title, [project.namespace.becomes(Namespace), project, issue], title: issue.title

View File

@ -1,3 +1,4 @@
-# @project is present when viewing Project's milestone
- project = @project || merge_request.project
%li{ id: dom_id(merge_request, 'sortable'), class: 'mr-row', 'data-iid' => merge_request.iid, 'data-url' => merge_request_path(merge_request) }