diff --git a/app/logical/concerns/pagination_extension.rb b/app/logical/pagination_extension.rb similarity index 91% rename from app/logical/concerns/pagination_extension.rb rename to app/logical/pagination_extension.rb index 730dcde6a..27963ac5b 100644 --- a/app/logical/concerns/pagination_extension.rb +++ b/app/logical/pagination_extension.rb @@ -3,13 +3,6 @@ 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) diff --git a/app/models/application_record.rb b/app/models/application_record.rb index b480a5b7e..8f9f94579 100644 --- a/app/models/application_record.rb +++ b/app/models/application_record.rb @@ -4,7 +4,21 @@ class ApplicationRecord < ActiveRecord::Base include Mentionable extend HasBitFlags extend Searchable - extend PaginationExtension + + 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 concerning :PrivilegeMethods do class_methods do