Modified: trunk/app/models/user.rb (2182 => 2183)
--- trunk/app/models/user.rb 2009-04-28 15:29:57 UTC (rev 2182)
+++ trunk/app/models/user.rb 2009-04-29 14:45:30 UTC (rev 2183)
@@ -383,9 +383,11 @@
end
def friends
- (friends_of_mine + friends_with_me).uniq.sort { |a, b|
- a.name.downcase <=> b.name.downcase
- }
+ User.find(:all,
+ :select => "users.*",
+ :joins => "JOIN friendships f ON (users.id = f.friend_id OR users.id = f.user_id)",
+ :conditions => ["(f.user_id = ? OR f.friend_id = ?) AND (f.accepted_at IS NOT NULL) AND (users.id <> ?)", id, id, id],
+ :order => "lower(users.name)" )
end
has_and_belongs_to_many :networks,
@@ -395,13 +397,11 @@
alias_method :original_networks, :networks
def networks
- rtn = []
-
- original_networks(force_reload = true).each do |n|
- rtn << Network.find(n.network_id)
- end
-
- return rtn
+ Network.find(:all,
+ :select => "networks.*",
+ :joins => "JOIN memberships m ON (networks.id = m.network_id)",
+ :conditions => ["m.user_id=? AND m.user_established_at is NOT NULL AND m.network_established_at IS NOT NULL", id],
+ :order => "GREATEST(m.user_established_at, m.network_established_at) DESC" )
end
has_many :networks_owned,