OSDN Git Service

rename model name
[pettanr/pettanr.git] / lib / locmare / list_group / list / filter.rb
index 4f98930..1e8d69c 100644 (file)
@@ -4,17 +4,17 @@ module Locmare
       attr :filter_key, :filter_item_name
       
       def init
-        super
         @filter_key = @list_manifest.filter_key
         @filter_item_name = @list_manifest.filter_item_name
         @filter_model = ::Manifest.manifest.models[@filter_item_name].classify
         @filter_table_name = @filter_model.table_name
+        super
       end
       
-      def where_condition filter_item_id
+      def where_condition
         w = self.base_where_condition
         w += ' and ' unless w.blank?
-        [w + @table_name + '.' + @filter_key + ' = ?', filter_item_id] 
+        [w + @table_name + '.' + @filter_key + ' = ?', self.filter_id] 
       end
       
       def include_hash
@@ -23,29 +23,37 @@ module Locmare
         w
       end
       
-      def visible? item_id, operators
+      def visible?
         r = nil
         begin
-          r = @filter_model.show(item_id, operators)
+          r = @filter_model.show(self.filter_id, @operators)
         rescue ActiveRecord::RecordNotFound, ActiveRecord::Forbidden
           r = false
         end
         r
       end
       
-      def items operators, options, offset, page_size
-        filter_item_id = options[:id]
-        if self.visible? filter_item_id, operators
-          @model.where(self.where_condition(filter_item_id)).includes(self.include_hash).order(self.order).offset(offset).limit(page_size)
+      def items
+        if self.visible?
+          @model.where(
+            self.where_condition
+          ).includes(
+            self.include_hash
+          ).order(
+            self.order_by
+          ).offset(@offset).limit(@limit)
         else
           []
         end
       end
       
-      def count operators, options
-        filter_item_id = options[:id]
-        if self.visible? filter_item_id, operators
-          @model.where(self.where_condition(filter_item_id)).includes(self.include_hash).count
+      def count
+        if self.visible?
+          @model.where(
+            self.where_condition
+          ).includes(
+            self.include_hash
+          ).count
         else
           0
         end