46 lines
966 B
Ruby
46 lines
966 B
Ruby
class JamRuby::Promotional < ActiveRecord::Base
|
|
self.table_name = :promotionals
|
|
self.abstract_class = true
|
|
|
|
attr_accessible :expires_at, :position, :aasm_state
|
|
|
|
include AASM
|
|
HIDDEN_STATE = :hidden
|
|
ACTIVE_STATE = :active
|
|
EXPIRED_STATE = :expired
|
|
|
|
aasm do
|
|
state HIDDEN_STATE, :initial => true
|
|
state ACTIVE_STATE
|
|
state EXPIRED_STATE
|
|
|
|
event :activate do
|
|
transitions :from => [HIDDEN_STATE, EXPIRED_STATE], :to => ACTIVE_STATE
|
|
end
|
|
|
|
event :expire do
|
|
transitions :from => [HIDDEN_STATE, ACTIVE_STATE], :to => EXPIRED_STATE
|
|
end
|
|
|
|
event :hide do
|
|
transitions :from => [HIDDEN_STATE, ACTIVE_STATE], :to => HIDDEN_STATE
|
|
end
|
|
|
|
end
|
|
|
|
def state
|
|
aasm_state
|
|
end
|
|
|
|
end
|
|
|
|
class JamRuby::PromoBuzz < JamRuby::Promotional
|
|
attr_accessible :original_fpfile_photo, :photo_url, :text_short, :text_long
|
|
|
|
end
|
|
|
|
class JamRuby::PromoLatest < JamRuby::Promotional
|
|
belongs_to :latest, :polymorphic => true
|
|
|
|
end
|