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
This commit is contained in:
Dmitriy Zaporozhets
2014-06-04 17:16:20 +00:00
2 changed files with 5 additions and 2 deletions
+1 -1
View File
@@ -50,7 +50,7 @@ module Mentionable
matches.each do |match|
identifier = match.delete "@"
if has_project
id = project.team.members.find { |u| u.username == identifier }.try(:id)
id = project.team.members.find_by(username: identifier).try(:id)
else
id = User.where(username: identifier).pluck(:id).first
end
+4 -1
View File
@@ -144,7 +144,10 @@ class ProjectTeam
group_members = group_members.send(level) if group
end
(project_members + group_members).map(&:user).uniq
user_ids = project_members.pluck(:user_id)
user_ids += group_members.pluck(:user_id) if group
User.where(id: user_ids)
end
def group