]> git.openstreetmap.org Git - rails.git/blobdiff - app/models/user.rb
Add an indexed home_tile column to the user table
[rails.git] / app / models / user.rb
index 1cd8c6d89f439651d5b88f35b04ef2dda887a4a6..2a6351e5024b428a9fc3674b9375067558b2167f 100644 (file)
@@ -33,6 +33,7 @@
 #  image_use_gravatar  :boolean          default(FALSE), not null
 #  image_content_type  :string
 #  auth_provider       :string
 #  image_use_gravatar  :boolean          default(FALSE), not null
 #  image_content_type  :string
 #  auth_provider       :string
+#  home_tile           :integer
 #
 # Indexes
 #
 #
 # Indexes
 #
@@ -41,6 +42,7 @@
 #  users_display_name_lower_idx  (lower((display_name)::text))
 #  users_email_idx               (email) UNIQUE
 #  users_email_lower_idx         (lower((email)::text))
 #  users_display_name_lower_idx  (lower((display_name)::text))
 #  users_email_idx               (email) UNIQUE
 #  users_email_lower_idx         (lower((email)::text))
+#  users_home_idx                (home_tile)
 #
 
 class User < ActiveRecord::Base
 #
 
 class User < ActiveRecord::Base
@@ -107,6 +109,7 @@ class User < ActiveRecord::Base
 
   after_initialize :set_defaults
   before_save :encrypt_password
 
   after_initialize :set_defaults
   before_save :encrypt_password
+  before_save :update_tile
   after_save :spam_check
 
   def self.authenticate(options)
   after_save :spam_check
 
   def self.authenticate(options)
@@ -298,4 +301,8 @@ class User < ActiveRecord::Base
       self.pass_crypt_confirmation = nil
     end
   end
       self.pass_crypt_confirmation = nil
     end
   end
+
+  def update_tile
+    self.home_tile = QuadTile.tile_for_point(home_lat, home_lon) if home_lat && home_lon
+  end
 end
 end