summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean McGivern <sean@mcgivern.me.uk>2018-03-05 11:05:54 +0000
committerIan Baum <ibaum@gitlab.com>2018-03-06 16:22:45 -0600
commit6b94f83df2fd467a1141e1be841998ed01f1c2ad (patch)
tree080e8faf5138b73f76862086a0c80a61a2da28fc
parentd00802fa1ed1729e8ef0a485e62a5ef9ac84e990 (diff)
downloadgitlab-ce-6b94f83df2fd467a1141e1be841998ed01f1c2ad.tar.gz
Merge branch 'remove-projects-finder-from-todos-finder' into 'master'
Don't use ProjectsFinder in TodosFinder Closes #43767 See merge request gitlab-org/gitlab-ce!17462
-rw-r--r--app/finders/todos_finder.rb15
-rw-r--r--changelogs/unreleased/remove-projects-finder-from-todos-finder.yml5
2 files changed, 11 insertions, 9 deletions
diff --git a/app/finders/todos_finder.rb b/app/finders/todos_finder.rb
index 3502bf08971..f07fb1c064d 100644
--- a/app/finders/todos_finder.rb
+++ b/app/finders/todos_finder.rb
@@ -105,10 +105,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
@@ -147,13 +143,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)
diff --git a/changelogs/unreleased/remove-projects-finder-from-todos-finder.yml b/changelogs/unreleased/remove-projects-finder-from-todos-finder.yml
new file mode 100644
index 00000000000..0a3fc751edb
--- /dev/null
+++ b/changelogs/unreleased/remove-projects-finder-from-todos-finder.yml
@@ -0,0 +1,5 @@
+---
+title: Don't use ProjectsFinder in TodosFinder
+merge_request:
+author:
+type: performance