app/models/venue.rb in artfully_ose-1.2.0.pre.23 vs app/models/venue.rb in artfully_ose-1.2.0.pre.24
- old
+ new
@@ -1,18 +1,19 @@
require 'geocoder'
class Venue < ActiveRecord::Base
belongs_to :organization
- belongs_to :event
-
+ has_one :event
+
validates_presence_of :name
- attr_accessible :name, :address1, :address2, :city, :state, :zip, :time_zone
+ attr_accessible :name, :address1, :address2, :city, :state, :zip, :time_zone, :lat, :long
+
+ geocoded_by :full_street_address, :latitude => :lat, :longitude => :long
- geocoded_by :geocode_address, :latitude => :lat, :longitude => :long
-
- before_save :geocode, :if => :address1_changed?
+ after_save :run_geocode, :if => :address1_changed?
+ after_save :refresh_show_stats, :if => :time_zone_changed?
def address_as_string
street_as_string + " " + city_state_zip_as_string
end
@@ -28,10 +29,23 @@
def address_as_url_query
URI::escape(street_as_string + " " + city_state_zip_as_string)
end
- def geocode_address
+ def full_street_address
(address1 || "") + ", " + (address2 || "") + ", " + (city || "") +
", " + (state || "") + " " + (zip || "")
end
+
+ def refresh_show_stats
+ unless self.event.nil?
+ self.event.shows.each {|s| s.delay.refresh_stats }
+ end
+ end
+
+ private
+
+ def run_geocode
+ Delayed::Job.enqueue(GeocodeAddressJob.new(self))
+ end
+
end