app/models/address.rb in artfully_ose-1.2.0.beta.1 vs app/models/address.rb in artfully_ose-1.2.0.pre

- old
+ new

@@ -1,23 +1,19 @@ class Address < ActiveRecord::Base - - attr_accessible :address1, :address2, :city, :state, :zip, :country, :person_id, :household_id - + attr_accessible :address1, :address2, :city, :state, :zip, :country, :person_id belongs_to :person - belongs_to :household # - # Needed because widget checkouts don't yet have a person_id + # Note that any validations here are skipped in person.rb + # so that unsaved people can also have unsaved addresses # - def valid_for_widget_checkout? - !(address1.blank? || city.blank? || state.blank? || zip.blank?) - end + validates :person_id, :presence => true def address "#{address1} #{address2}" end - + def to_s "#{address1} #{address2} #{city} #{state} #{zip} #{country}" end # Country intentionally omitted @@ -35,13 +31,13 @@ end def self.from_payment(payment) payment.try(:customer).try(:address) end - + def self.unhash(address) - (address.is_a? Hash) ? Address.new(address.except(:id, :created_at, :updated_at, :old_mongo_id)) : address + (address.is_a? Hash) ? Address.new(address) : address end def self.find_or_create(pers_id) #refactor to first_or_initialize when Rails 3.2 where(:person_id => pers_id).first || Address.create(:person_id => pers_id) @@ -52,40 +48,23 @@ unless is_same_as(address) ["address1", "address2", "city", "state", "zip", "country"].each do |field| self.send("#{field}=", address.send(field)) end - - if save + + if save extra = updated_by.nil? ? "" : " from #{updated_by}" text = "address updated#{extra}" text = text + ", old address was: (#{old_addr})" unless old_addr.blank? note = person.notes.create({ :occurred_at => DateTime.now.in_time_zone(time_zone), - :text => text + :text => text }) note.user = user else return false - end + end end true end - - def ==(other) - address1 == other.address1 && address2 == other.address2 && city == other.city && state == other.state && zip == other.zip && country == other.country - end - - def values_hash - { - :address1 => address1, - :address2 => address2, - :city => city, - :state => state, - :zip => zip, - :country => country - } - end - - end