Module: SolidusPagy::Admin::PromotionsControllerDecorator

Defined in:
app/decorators/controllers/solidus_pagy/admin/promotions_controller_decorator.rb

Class Method Summary collapse

Class Method Details

.prepended(base) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'app/decorators/controllers/solidus_pagy/admin/promotions_controller_decorator.rb', line 6

def self.prepended(base)
  base.class_eval do
    private

    def collection
      return @collection if @collection

      params[:q] ||= HashWithIndifferentAccess.new
      params[:q][:s] ||= 'id desc'

      @collection = super
      @search = @collection.ransack(params[:q])
      @result = pagy(
        @search.result(distinct: true).includes(promotion_includes),
        page: params[:page],
        items: params[:per_page] || ::SolidusPagy.config.promotions_per_page
      )
      @pagy = @result.first
      @collection = @result.second
    end
  end
end