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