-class Scroll < Pettanr::Item
+class Scroll < Pettanr::Content
has_many :scroll_panels
belongs_to :author
validates :visible, :presence => true, :numericality => true, :inclusion => {:in => 0..1}
validates :author_id, :presence => true, :numericality => true, :existence => {:both => false}
- def self.singular
- 'Scroll'
- end
-
- def self.plural
- 'Scrolls'
- end
-
- def self.owner_type
- :author
+ def self.valid_encode_columns
+ super + ['title']
end
def supply_default
self.author_id = operators.author.id
end
- def own? roles
- roles = [roles] unless roles.respond_to?(:each)
- au = Scroll.get_author_from_roles roles
- return false unless au
- self.author_id == au.id
- end
-
def visible? operators
return false unless super
self.visible > 0
{:include => {:scroll_panels => {:include => {:panel => {}}}, :author => {}}}
end
- def self.show sid, operators
- opt = {}
- opt.merge!(Scroll.show_opt)
- res = Scroll.find(sid, opt)
- raise ActiveRecord::Forbidden unless res.visible?(operators)
- res
- end
-
- def self.edit sid, au
- opt = {}
- opt.merge!(Scroll.show_opt)
- res = Scroll.find(sid, opt)
- raise ActiveRecord::Forbidden unless res.own?(au)
- res
- end
-
def self.show_opt
{:include => {:scroll_panels => {:panel => {}}, :author => {}}}
end