Skip to content
Snippets Groups Projects
Unverified Commit f09fe848 authored by Yorick Peterse's avatar Yorick Peterse
Browse files

Don't use ProjectsFinder in TodosFinder

Using ProjectsFinder in TodosFinder to limit todos to the right projects
leads to overly complicated and slow database queries. This commit
removes the use of ProjectsFinder in favour of using
Project.public_or_visible_to_current_user directly.

Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/43767
parent de454de9
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -110,10 +110,6 @@ class TodosFinder
ids
end
 
def projects(items)
ProjectsFinder.new(current_user: current_user, project_ids_relation: project_ids(items)).execute
end
def type?
type.present? && %w(Issue MergeRequest).include?(type)
end
Loading
Loading
@@ -152,13 +148,14 @@ class TodosFinder
 
def by_project(items)
if project?
items = items.where(project: project)
items.where(project: project)
else
item_projects = projects(items)
items = items.merge(item_projects).joins(:project)
end
projects = Project
.public_or_visible_to_user(current_user)
.order_id_desc
 
items
items.joins(:project).merge(projects)
end
end
 
def by_state(items)
Loading
Loading
---
title: Don't use ProjectsFinder in TodosFinder
merge_request:
author:
type: performance
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment