1 class Pettanr::Content < Pettanr::Item
2 self.abstract_class = true
5 def self.mylist_where me
13 def self.himlist_where anyone
17 def self.himlist_order
21 def self.mylist me, page = 1, page_size = self.default_page_size
22 self.where(self.mylist_where(me)).includes(self.list_opt).order(self.mylist_order).offset((page -1) * page_size).limit(page_size)
25 def self.himlist anyone, operators, page = 1, page_size = self.default_page_size
26 where_str = if operators.admin?
29 self.himlist_where(anyone)
31 self.where(where_str).includes(self.list_opt).order(self.mylist_order).offset((page -1) * page_size).limit(page_size)
34 def self.mylist_paginate me, page = 1, page_size = self.default_page_size
35 Kaminari.paginate_array(
36 Array.new(self.where(self.mylist_where(me)
37 ).includes(self.list_opt).count, nil)).page(page).per(page_size)
40 def self.himlist_paginate anyone, operators, page = 1, page_size = self.default_page_size
41 where_str = if operators.admin?
44 self.himlist_where(anyone)
46 Kaminari.paginate_array(
47 Array.new(self.where(where_str)
48 ).includes(self.list_opt).count, nil)).page(page).per(page_size)
51 def self.edit content_id, operators
52 content = self.find content_id, self.show_opt
53 raise ActiveRecord::Forbidden unless content.own?(operators)
59 def visible? operators
61 return true if self.own?(operators)
66 return false unless operators.author
67 self.author_id == operators.author.id