From 46831a9cf60b7f2b346d9f63a6ac88ce1cbb7fbe Mon Sep 17 00:00:00 2001 From: Marius BALTEANU Date: Mon, 20 Apr 2020 22:50:51 +0300 Subject: [PATCH 1/4] Get the list of new issue watchers using single query and limit the results to 20 --- app/helpers/issues_helper.rb | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/app/helpers/issues_helper.rb b/app/helpers/issues_helper.rb index f212f1a2a..0208e53ad 100644 --- a/app/helpers/issues_helper.rb +++ b/app/helpers/issues_helper.rb @@ -364,13 +364,11 @@ module IssuesHelper # on the new issue form def users_for_new_issue_watchers(issue) users = issue.watcher_users.select{|u| u.status == User::STATUS_ACTIVE} - project = issue.project - scope_users = project.users - scope_groups = project.principals.merge(Group.givable) - if scope_users.count + scope_groups.count <= 20 - users = (users + scope_users.sort + scope_groups.sort).uniq + project_principals = issue.project.principals.where(:users => {:type => ['User', 'Group']}).limit(21) + if project_principals.size <= 20 + users += project_principals.sort end - users + users.uniq end def email_issue_attributes(issue, user, html) -- 2.22.0