diff --git a/lib/open_food_network/products_renderer.rb b/lib/open_food_network/products_renderer.rb index 48a35a1b11..a3642a26b5 100644 --- a/lib/open_food_network/products_renderer.rb +++ b/lib/open_food_network/products_renderer.rb @@ -35,15 +35,20 @@ module OpenFoodNetwork return unless order_cycle @products ||= begin - scoper = ScopeProductToHub.new(distributor) + results = distributed_products.products_relation.order(taxon_order) - distributed_products.products_relation. - order(taxon_order). - ransack(params[:q]).result.page(params[:page] || 1).per(params[:per_page] || 10). - each { |product| scoper.scope(product) } + filter_and_paginate(results).each { |product| product_scoper.scope(product) } end end + def product_scoper + ScopeProductToHub.new(distributor) + end + + def filter_and_paginate(query) + query.ransack(params[:q]).result.page(params[:page] || 1).per(params[:per_page] || 10) + end + def distributed_products OrderCycleDistributedProducts.new(distributor, order_cycle, customer) end