3 class FilterList < BaseList
16 w += ' and ' unless w.blank?
17 [w + @table_name + '.' + @filter_key + ' = ?', filter_item.id]
21 return @includes if @includes
22 w = @owner_model ? {@owner_model.item_name => {}} : {}
23 w.merge({@from => {} })
27 @model.where(self.where(filter_item)).includes(self.includes).order(self.order).offset(@offset).limit(@page_size)
30 def paginate filter_item
31 Kaminari.paginate_array(Array.new(@model.where(self.where(filter_item)).includes(self.includes).count, nil)).page(@offset).per(@page_size)
34 def self._add_action item_name, action_name, list_name, list_conf
36 model = item_name.classify.constantize
37 controller_name = model.plural + 'Controller'
38 controller = controller_name.constantize
39 list_list_conf = Pettanr::Application::manifest.list(item_name).lists[list_name] || {}
40 from = list_list_conf['from']
41 filter_model = from.classify.constantize
42 filter_key = list_list_conf['filter_key']
43 return if controller.method_defined?(action_name)
44 controller.define_method(action_name) do
45 filter_list filter_model, params