2 class Comic < Peta::Content
3 has_many :stories, :order => 't'
6 validates :title, :presence => true, :length => {:maximum => 100}
7 validates :visible, :presence => true, :numericality => true, :inclusion => {:in => 0..1}
8 validates :author_id, :presence => true, :numericality => true, :existence => {:both => false}
10 def self.valid_encode_columns
11 super + ['title', 'description']
14 def self.visible_count_options
15 {:conditions => 'visible > 0'}
19 self.visible = 0 if self.visible.blank?
22 def overwrite operators
23 return false unless operators.author
24 self.author_id = operators.author.id
27 def visible? operators
28 return false unless super
32 def comic_stories_count
33 Story.where(['stories.comic_id = ?', self.id]).count
44 'comics.updated_at desc'
48 {:stories => {}, :author => {} }
51 def self.list_json_opt
52 {:include => {:stories => {}, :author => {}} }
56 {:include => {:stories => {}, :author => {}} }
59 def self.show_json_opt
60 {:include => {:stories => {}, :author => {}} }
63 def tag_attributes column = nil, opt = {}
68 def destroy_with_story
71 self.stories.each do |story|
72 raise ActiveRecord::Rollback unless story.destroy_and_shorten
74 raise ActiveRecord::Rollback unless self.destroy