OSDN Git Service

fix remove tree
[pettanr/pettanr.git] / lib / locmare / list_group / list / private.rb
1 module Locmare
2   module ListGroupModule
3     class PrivateList < Base
4       
5       def init
6         super
7         @tree_name = @list_manifest.tree_name
8       end
9       
10       def where_condition operators
11         owner_model = if tree = @model_manifest.tree[@tree_name]
12           @model_manifest.tree[@tree_name].root_model
13         else
14           @model
15         end
16         case owner_model.owner_type
17         when :author
18           operator = operators.author
19         when :artist
20           operator = operators.artist
21         end
22         [owner_model.table_name + '.' + owner_model.owner_type.to_s + '_id = ?', operator.id]
23       end
24       
25       def items operators, options, offset, page_size
26         @model.where(self.where_condition(operators)).includes(self.include_hash).order(self.order).offset(offset).limit(page_size)
27       end
28       
29       def count operators, options
30         filter_item_id = options[:id]
31         @model.where(self.where_condition(operators)).includes(self.include_hash).count
32       end
33       
34     end
35     
36   end
37 end