Skip to content

Commit

Permalink
Kaminari's page_method_name does not always apply to Kaminari::Pagina…
Browse files Browse the repository at this point in the history
…tableArray, allow fallback to `page`

The change in Kaminari looks causing this behavior:
kaminari/kaminari@653143b
Closes #3170
  • Loading branch information
mshibuya committed Aug 3, 2019
1 parent c38b76d commit 136b943
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 1 deletion.
5 changes: 4 additions & 1 deletion lib/rails_admin/extensions/paper_trail/auditing_adapter.rb
Expand Up @@ -119,7 +119,10 @@ def listing_for_model_or_object(model, object, query, sort, sort_reverse, all, p
versions = versions.order(sort_reverse == 'true' ? "#{sort} DESC" : sort)
versions = all ? versions : versions.send(Kaminari.config.page_method_name, current_page).per(per_page)
paginated_proxies = Kaminari.paginate_array([], total_count: versions.try(:total_count) || versions.count)
paginated_proxies = paginated_proxies.send(Kaminari.config.page_method_name, current_page).per(per_page)
paginated_proxies = paginated_proxies.send(
paginated_proxies.respond_to?(Kaminari.config.page_method_name) ? Kaminari.config.page_method_name : :page,
current_page,
).per(per_page)
versions.each do |version|
paginated_proxies << VersionProxy.new(version, @user_class)
end
Expand Down
9 changes: 9 additions & 0 deletions spec/integration/history/rails_admin_paper_trail_spec.rb
Expand Up @@ -135,6 +135,15 @@
@adapter.listing_for_model @model, nil, false, false, false, nil
@adapter.listing_for_object @model, @paper_trail_test, nil, false, false, false, nil
end

it "does not break when Kaminari's page_method_name is not applied to Kaminari::PaginatableArray" do
expect(PaperTrail::Version).to receive(:per_page_kaminari).twice.and_return(@padinated_listing)
allow(Kaminari).to receive(:paginate_array).and_return(paginated_array)
allow(paginated_array).to receive(:respond_to).with(:per_page_kaminari).and_return(false)
expect(paginated_array).to receive(:page).twice.and_return(paginated_array)
@adapter.listing_for_model @model, nil, false, false, false, nil
@adapter.listing_for_object @model, @paper_trail_test, nil, false, false, false, nil
end
end
end
end
Expand Down

0 comments on commit 136b943

Please sign in to comment.