OSDN Git Service

remove counter api
[pettanr/pettanr.git] / lib / locmare / list_group / list / filter.rb
1 module Locmare
2   module ListGroupModule
3     class FilterList < Base
4       attr :filter_key, :filter_item_name
5       
6       def init
7         @filter_key = @list_manifest.filter_key
8         @filter_item_name = @list_manifest.filter_item_name
9         @filter_model = ::Manifest.manifest.models[@filter_item_name].classify
10         @filter_table_name = @filter_model.table_name
11         super
12       end
13       
14       def where_condition
15         w = self.base_where_condition
16         w += ' and ' unless w.blank?
17         [w + @table_name + '.' + @filter_key + ' = ?', self.filter_id] 
18       end
19       
20       def include_hash
21         w = super
22         w.merge!({@filter_item_name => {} }) unless w[@filter_item_name]
23         w
24       end
25       
26       def visible?
27         r = nil
28         begin
29           r = @filter_model.show(self.filter_id, @operators)
30         rescue ActiveRecord::RecordNotFound, ActiveRecord::Forbidden
31           r = false
32         end
33         r
34       end
35       
36     end
37     
38   end
39 end