1 class ScrollPanel < Peta::Leaf
7 validates :scroll_id, :presence => true, :numericality => true, :existence => {:both => false}
8 validates :panel_id, :presence => true, :numericality => true, :existence => {:both => false}
9 validates :t, :presence => true, :numericality => {:greater_than_or_equal_to => 0}
11 scope :with_scroll, -> do
15 scope :find_index, -> do
16 with_scroll.where(Scroll.arel_table[:visible].gt 0).references(:scroll)
19 scope :find_private, -> (operators) do
20 with_scroll.where(Scroll.arel_table[:author_id].eq operators.author.id).references(:scroll)
23 scope :find_by_scroll, -> (scroll_id) do
24 find_index.where(scroll_id: scroll_id).references(:scroll)
27 scope :find_by_panel, -> (panel_id) do
28 find_index.where(panel_id: panel_id).references(:scroll)
31 scope :find_by_author, -> (author_id) do
32 find_index.where(Scroll.arel_table[:author_id].eq author_id).references(:scroll)
41 def overwrite operators
44 def self.public_list_where list
48 def self.by_author_list_includes
60 def self.licensed_pictures scroll_panels
61 Panel.licensed_pictures scroll_panels.select {|sp| sp.panel }.map {|sp| sp.panel }
65 return nil if self.scroll_id == nil or self.panel_id == nil
66 self.scroll.own?(operators) and self.panel.usable?(operators)