diff options
author | Adam Niedzielski <adamsunday@gmail.com> | 2017-01-13 10:12:27 -0500 |
---|---|---|
committer | Adam Niedzielski <adamsunday@gmail.com> | 2017-01-16 11:58:16 -0500 |
commit | cf3be218e17d147cb9b1395af6b968d47b56ce0a (patch) | |
tree | ddd59c0f77ce8824843b253bd5b8981598afb303 | |
parent | 0ff88ac56281db18afa37981530d97da0ea8e38a (diff) | |
download | gitlab-ce-speed-up-dashboard-milestone-index.tar.gz |
Speed up dashboard milestone index by scoping IssuesFinder to user authorized projectsspeed-up-dashboard-milestone-index
It improves performance in dashboard milestone index page by passing a
hint to "IssuesFinder". "IssuesFinder" generates a more performant query
when it is limited to authorized projects for user.
In the dashboard we already limit the projects to these authorized for
user (see "Dashboard::ApplicationController#projects"), so we can safely
pass this option to "IssuesFinder".
-rw-r--r-- | app/controllers/dashboard/milestones_controller.rb | 4 | ||||
-rw-r--r-- | app/models/dashboard_milestone.rb | 5 | ||||
-rw-r--r-- | changelogs/unreleased/speed-up-dashboard-milestone-index.yml | 5 |
3 files changed, 12 insertions, 2 deletions
diff --git a/app/controllers/dashboard/milestones_controller.rb b/app/controllers/dashboard/milestones_controller.rb index 7051652d109..7f506db583f 100644 --- a/app/controllers/dashboard/milestones_controller.rb +++ b/app/controllers/dashboard/milestones_controller.rb @@ -19,11 +19,11 @@ class Dashboard::MilestonesController < Dashboard::ApplicationController private def milestones - @milestones = GlobalMilestone.build_collection(@projects, params) + @milestones = DashboardMilestone.build_collection(@projects, params) end def milestone - @milestone = GlobalMilestone.build(@projects, params[:title]) + @milestone = DashboardMilestone.build(@projects, params[:title]) render_404 unless @milestone end end diff --git a/app/models/dashboard_milestone.rb b/app/models/dashboard_milestone.rb new file mode 100644 index 00000000000..646c1e5ce1a --- /dev/null +++ b/app/models/dashboard_milestone.rb @@ -0,0 +1,5 @@ +class DashboardMilestone < GlobalMilestone + def issues_finder_params + { authorized_only: true } + end +end diff --git a/changelogs/unreleased/speed-up-dashboard-milestone-index.yml b/changelogs/unreleased/speed-up-dashboard-milestone-index.yml new file mode 100644 index 00000000000..ba4ff931ea8 --- /dev/null +++ b/changelogs/unreleased/speed-up-dashboard-milestone-index.yml @@ -0,0 +1,5 @@ +--- +title: Speed up dashboard milestone index by scoping IssuesFinder to user authorized + projects +merge_request: 8524 +author: |