OSDN Git Service

f0251937266a623701d7962d35cf96b89a6685f6
[pettanr/pettanr.git] / lib / manifest / local / view / list_group / list / private.rb
1 module Manifest
2   module View
3     module ListGroupModule
4       class PrivateList < Base
5         
6         def init
7           super
8         end
9         
10         def where_condition operators
11           case @model.owner_type
12           when :author
13             operator = operators.author
14           when :artist
15             operator = operators.artist
16           end
17           t = if @owner_model
18             if @owner_model.owner_model
19               @owner_model.owner_model.table_name
20             else
21               @owner_model.table_name
22             end
23           else
24             @table_name
25           end
26           @where.conditions do |name|
27             [t + '.' + @model.owner_type.to_s + '_id = ?', operator.id]
28           end
29         end
30       
31         def items operators, options, offset, page_size
32           @model.where(self.where_condition(operators)).includes(self.include_hash).order(self.order).offset(offset).limit(page_size)
33         end
34         
35         def count operators, options
36           filter_item_id = options[:id]
37           @model.where(self.where_condition(operators)).includes(self.include_hash).count
38         end
39         
40       end
41       
42     end
43   end
44 end