module Manifest
- module ListModule
- class FilterList < BaseList
-
- def set_default
- super
- end
-
- def init
- super
- return
- end
-
- def where filter_item
- w = @model.list_where
- w += ' and ' unless w.blank?
- [w + @table_name + '.' + @filter_key + ' = ?', filter_item.id]
- end
-
- def includes
- return @includes if @includes
- w = @owner_model ? {@owner_model.item_name => {}} : {}
- w.merge({@from => {} })
- end
-
- def items filter_item
- @model.where(self.where(filter_item)).includes(self.includes).order(self.order).offset(@offset).limit(@page_size)
- end
-
- def paginate filter_item
- Kaminari.paginate_array(Array.new(@model.where(self.where(filter_item)).includes(self.includes).count, nil)).page(@offset).per(@page_size)
- end
-
- def self._add_action item_name, action_name, list_name, list_conf
- return
- model = item_name.classify.constantize
- controller_name = model.plural + 'Controller'
- controller = controller_name.constantize
- list_list_conf = Pettanr::Application::manifest.list(item_name).lists[list_name] || {}
- from = list_list_conf['from']
- filter_model = from.classify.constantize
- filter_key = list_list_conf['filter_key']
- return if controller.method_defined?(action_name)
- controller.define_method(action_name) do
- filter_list filter_model, params
+ module ModelModule
+ module ListModule
+ class FilterList < Base
+
+ def set_default
+ super
+ end
+
+ def init
+ super
+ return
+ end
+
+ def where filter_item
+ w = @model.list_where
+ w += ' and ' unless w.blank?
+ [w + @table_name + '.' + @filter_key + ' = ?', filter_item.id]
+ end
+
+ def includes
+ return @includes if @includes
+ w = @owner_model ? {@owner_model.item_name => {}} : {}
+ w.merge({@from => {} })
+ end
+
+ def items filter_item
+ @model.where(self.where(filter_item)).includes(self.includes).order(self.order).offset(@offset).limit(@page_size)
+ end
+
+ def paginate filter_item
+ Kaminari.paginate_array(Array.new(@model.where(self.where(filter_item)).includes(self.includes).count, nil)).page(@offset).per(@page_size)
+ end
+
+ def self._add_action item_name, action_name, list_name, list_conf
+ return
+ model = item_name.classify.constantize
+ controller_name = model.plural + 'Controller'
+ controller = controller_name.constantize
+ list_list_conf = Pettanr::Application::manifest.list(item_name).lists[list_name] || {}
+ from = list_list_conf['from']
+ filter_model = from.classify.constantize
+ filter_key = list_list_conf['filter_key']
+ return if controller.method_defined?(action_name)
+ controller.define_method(action_name) do
+ filter_list filter_model, params
+ end
end
+
end
end
-
end
end