Commit a76bf07ae2ecaf47dab58cbeac37cb82ae8d3ad8
Exists in
spb-stable
and in
2 other branches
Merge branch 'performance-improve' into 'master'
More performance improvements for large groups * fetch team members using much less sql queries * collect mentioned users without iterating over all project users
Showing
2 changed files
with
5 additions
and
2 deletions
Show diff stats
app/models/concerns/mentionable.rb
@@ -50,7 +50,7 @@ module Mentionable | @@ -50,7 +50,7 @@ module Mentionable | ||
50 | matches.each do |match| | 50 | matches.each do |match| |
51 | identifier = match.delete "@" | 51 | identifier = match.delete "@" |
52 | if has_project | 52 | if has_project |
53 | - id = project.team.members.find { |u| u.username == identifier }.try(:id) | 53 | + id = project.team.members.find_by(username: identifier).try(:id) |
54 | else | 54 | else |
55 | id = User.where(username: identifier).pluck(:id).first | 55 | id = User.where(username: identifier).pluck(:id).first |
56 | end | 56 | end |
app/models/project_team.rb
@@ -144,7 +144,10 @@ class ProjectTeam | @@ -144,7 +144,10 @@ class ProjectTeam | ||
144 | group_members = group_members.send(level) if group | 144 | group_members = group_members.send(level) if group |
145 | end | 145 | end |
146 | 146 | ||
147 | - (project_members + group_members).map(&:user).uniq | 147 | + user_ids = project_members.pluck(:user_id) |
148 | + user_ids += group_members.pluck(:user_id) if group | ||
149 | + | ||
150 | + User.where(id: user_ids) | ||
148 | end | 151 | end |
149 | 152 | ||
150 | def group | 153 | def group |