OSDN Git Service

classname rename to module_name
[pettanr/pettanr.git] / app / models / story_sheet.rb
1 class StorySheet < Peta::Leaf
2   load_manifest
3   belongs_to :author
4   belongs_to :story
5   belongs_to :sheet
6   
7   validates :story_id, :presence => true, :numericality => true, :existence => {:both => false}
8   validates :sheet_id, :presence => true, :numericality => true, :existence => {:both => false}
9   validates :author_id, :presence => true, :numericality => true, :existence => {:both => false}
10   validates :t, :presence => true, :numericality => {:greater_than_or_equal_to => 0}
11   
12   def supply_default
13     self.story_id = nil
14     self.sheet_id = nil
15     self.t = nil
16   end
17   
18   def overwrite operators
19     return false unless operators.author
20     self.author_id = operators.author.id
21   end
22   
23   def self.public_list_where
24     'stories.visible > 0'
25   end
26   
27   def self.by_author_list_includes
28     {
29       :story => {
30         :author => {}
31       }
32     }
33   end
34   
35   def self.show_opt
36     {:include => {
37       :author => {}, 
38       :story => {}, 
39       :sheet => {
40         :author => {} 
41       }
42     }}
43   end
44   
45   def allow? operators
46     return nil if self.story_id == nil or self.sheet_id == nil
47     self.story.own?(operators) and self.sheet.usable?(operators)
48   end
49   
50 end