application model: move pagination extension to concern.

This commit is contained in:
evazion
2020-02-23 01:12:28 -06:00
parent c53e4e7155
commit 7855e36d17
2 changed files with 8 additions and 15 deletions

View File

@@ -3,6 +3,13 @@ module PaginationExtension
attr_accessor :current_page, :records_per_page, :paginator_count, :paginator_mode
def paginated_search(params, defaults: {}, count_pages: params[:search].present?)
search_params = params.fetch(:search, {}).permit!
search_params = defaults.merge(search_params).with_indifferent_access
search(search_params).paginate(params[:page], limit: params[:limit], search_count: count_pages)
end
def paginate(page, limit: nil, count: nil, search_count: nil)
@records_per_page = limit || Danbooru.config.posts_per_page
@records_per_page = @records_per_page.to_i.clamp(1, 1000)

View File

@@ -4,21 +4,7 @@ class ApplicationRecord < ActiveRecord::Base
include Mentionable
extend HasBitFlags
extend Searchable
concerning :PaginationMethods do
class_methods do
def paginate(*args, **options)
extending(PaginationExtension).paginate(*args, **options)
end
def paginated_search(params, defaults: {}, count_pages: params[:search].present?)
search_params = params.fetch(:search, {}).permit!
search_params = defaults.merge(search_params).with_indifferent_access
search(search_params).paginate(params[:page], limit: params[:limit], search_count: count_pages)
end
end
end
extend PaginationExtension
concerning :PrivilegeMethods do
class_methods do