0
@@ -6,7 +6,9 @@ class User < ActiveRecord::Base
0
named_scope :musicians, {:conditions => ['assets_count > ?',0], :order => 'assets_count DESC', :include => :pic}
0
named_scope :activated, {:conditions => {:activation_code => nil}, :order => 'created_at DESC', :include => :pic}
0
- named_scope :recently_seen, {:order => 'last_seen_at DESC', :include => :pic}
0
+ named_scope :recently_seen, {:order => 'last_seen_at DESC', :include => :pic}
0
+ named_scope :with_location, {:conditions => ['users.country != ""'], :order => 'last_seen_at DESC', :include => :pic}
0
+ named_scope :geocoded, {:conditions => ['users.lat != ""'], :order => 'last_seen_at DESC', :include => :pic}
0
has_many :assets, :dependent => :destroy, :order => 'created_at DESC'
0
@@ -18,13 +20,16 @@ class User < ActiveRecord::Base
0
belongs_to :facebook_account
0
+ before_validation :geocode_address
0
# Can listen to music, and have that tracked
0
has_many :listens, :foreign_key => 'listener_id', :include => :asset, :order => 'listens.created_at DESC'
0
# Can have their music listened to
0
- has_many :track_plays, :foreign_key => 'track_owner_id', :class_name => 'Listen', :include =>
:asset, :order => 'listens.created_at DESC'
0
+ has_many :track_plays, :foreign_key => 'track_owner_id', :class_name => 'Listen', :include =>
[:asset], :order => 'listens.created_at DESC'
0
# And therefore have listeners
0
has_many :listeners, :through => :track_plays, :uniq => true
0
@@ -90,7 +95,7 @@ class User < ActiveRecord::Base
0
- self.playlists.favorites.fi
rst0
+ self.playlists.favorites.fi
nd(:first)0
@@ -155,7 +160,7 @@ class User < ActiveRecord::Base
0
when 'dedicated_listeners'
0
@entries = WillPaginate::Collection.create((params[:page] || 1), 15) do |pager|
0
# returns an array, like so: [User, number_of_listens]
0
- result = Listen.count(:all, :
include => :listener, :order => 'count_all DESC', :conditions => 'listener_id != ""', :group => :listener, :limit => pager.per_page, :offset => pager.offset)
0
+ result = Listen.count(:all, :
order => 'count_all DESC', :conditions => 'listener_id != ""', :group => :listener, :limit => pager.per_page, :offset => pager.offset)
0
# inject the result array into the paginated collection:
0
@@ -167,7 +172,7 @@ class User < ActiveRecord::Base
0
@entries = WillPaginate::Collection.create((params[:page] || 1), 15) do |pager|
0
- distinct_users = Asset.find(:all, :select => 'DISTINCT user_id', :
order => 'assets.created_at DESC', :limit => pager.per_page, :offset => pager.offset)
0
+ distinct_users = Asset.find(:all, :select => 'DISTINCT user_id', :
include => [:user => :pic], :order => 'assets.created_at DESC', :limit => pager.per_page, :offset => pager.offset)
0
pager.replace(distinct_users.collect(&:user)) # only send back the users
0
@@ -252,6 +257,11 @@ class User < ActiveRecord::Base
0
alias_method :reset_token!, :reset_login_key!
0
+ return unless city && country
0
+ geo=GeoKit::Geocoders::MultiGeocoder.geocode([city, country].compact.join(', '))
0
+ self.lat, self.lng = geo.lat,geo.lng if geo.success
0
def make_first_user_admin
Comments
No one has commented yet.