##// END OF EJS Templates
Optimize retrieval of user's projects members....
Jean-Philippe Lang -
r3493:5225fb70f533
parent child
Show More
@@ -185,9 +185,11 class Query < ActiveRecord::Base
185 185 if project
186 186 user_values += project.users.sort.collect{|s| [s.name, s.id.to_s] }
187 187 else
188 # members of the user's projects
189 # OPTIMIZE: Is selecting from users per project (N+1)
190 user_values += User.current.projects.collect(&:users).flatten.uniq.sort.collect{|s| [s.name, s.id.to_s] }
188 project_ids = User.current.projects.collect(&:id)
189 if project_ids.any?
190 # members of the user's projects
191 user_values += User.active.find(:all, :conditions => ["#{User.table_name}.id IN (SELECT DISTINCT user_id FROM members WHERE project_id IN (?))", project_ids]).sort.collect{|s| [s.name, s.id.to_s] }
192 end
191 193 end
192 194 @available_filters["assigned_to_id"] = { :type => :list_optional, :order => 4, :values => user_values } unless user_values.empty?
193 195 @available_filters["author_id"] = { :type => :list, :order => 5, :values => user_values } unless user_values.empty?
General Comments 0
You need to be logged in to leave comments. Login now