OSDN Git Service

fix Manifest lst
[pettanr/pettanr.git] / lib / manifest / model / list / base.rb
index 805f315..93df4dd 100644 (file)
@@ -1,95 +1,43 @@
 module Manifest
-  module ListModule
-    class BaseList
-      attr :model, :list_name, :list_manifest, 
-        :default_page_size, :max_page_size
-      def initialize model, list_name, list_manifest
-        @model = model
-        @list_name = list_name
-        @list_manifest = list_manifest
-        self.set_default
-        self.init
+  module ModelModule
+    module ListModule
+      class Base
+        attr :model, :list_name, :list_manifest, :type, 
+          :default_page_size, :max_page_size
+        def initialize model, list_name, list_manifest
+          @model = model
+          @list_name = list_name
+          @list_manifest = list_manifest
+          self.set_default
+          self.init
+        end
         
-        @model = ::Manifest.item_name_to_model self.model_name
-        @table_name = @model.table_name
-        if @model.content?
-          @owner_model = @model.owner_model
-          @owner_table_name = @owner_model.table_name if @owner_model
+        def set_default
+          self.list_manifest['args'] ||= {}
+          @list_manifest['args']['default_page_size'] ||= 25
+          @list_manifest['args']['max_page_size'] ||= 100
         end
-      end
-      
-      def set_default
-        self.list_manifest['args'] ||= {}
-        @list_manifest['args']['default_page_size'] ||= 25
-        @list_manifest['args']['max_page_size'] ||= 100
-      end
-      
-      def init
-        @args = @list_manifest['args']
-        @default_page_size = @list_manifest['args']['default_page_size']
-        @max_page_size = @list_manifest['args']['max_page_size']
-      end
-      
-      def model_name
-        @model.model_name
-      end
-      
-      def model_manifest
-        @model.model_manifest
-      end
-      
-      def page_number prm = nil
-        page = prm.to_i
-        page = 1 if page < 1
-        page
-      end
-      
-      def page_size prm
-        page_size = prm.to_i
-        page_size = @max_page_size if page_size > @max_page_size
-        page_size = @default_page_size if page_size < 1
-        page_size
-      end
-      
-      def where
-        @model.list_where
-      end
-      
-      def includes
-        if @owner_model
-          if @owner_model.owner_model
-            {@owner_model.item_name => {@owner_model.owner_model.item_name => {}}}
-          else
-            {@owner_model.item_name => {}}
-          end
-        else
-          {}
+        
+        def init
+          @type = @list_manifest['type']
+          @args = @list_manifest['args']
+          @default_page_size = @list_manifest['args']['default_page_size']
+          @max_page_size = @list_manifest['args']['max_page_size']
+        end
+        
+        def model_name
+          @model.model_name
+        end
+        
+        def model_manifest
+          @model.model_manifest
+        end
+        
+        def self.add_action item_name, action_name, list_name, list_conf
+          return
         end
       end
       
-      def order
-        @model.list_order
-      end
-      
-      def a page, page_size, operators
-        @page = self.page_number(page) 
-        @page_size = self.page_size page_size
-        @offset = (@page -1) * @page_size
-      end
-      
-      def items
-        @model.where(self.where()).includes(self.includes).order(self.order).offset(@offset).limit(@page_size)
-      end
-      
-      def paginate
-        c = @model.where(self.where()).includes(self.includes).count
-        Kaminari.paginate_array(Array.new(c, nil)).page(@offset).per(@page_size)
-      end
-      
-      def self.add_action item_name, action_name, list_name, list_conf
-        return
-      end
     end
-    
   end
 end