mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-05 22:26:07 +00:00
When looking up distributors for sidebar, include both those in ProductDistributions and in OrderCycles
This commit is contained in:
@@ -12,7 +12,7 @@ class ApplicationController < ActionController::Base
|
||||
def load_data_for_sidebar
|
||||
@suppliers = Enterprise.is_primary_producer
|
||||
@order_cycles = OrderCycle.active
|
||||
@distributors = @order_cycles.map { |oc| oc.distributors }.flatten.uniq
|
||||
@distributors = QueriesProductDistribution.active_distributors
|
||||
end
|
||||
|
||||
# All render calls within the block will be performed with the specified format
|
||||
|
||||
19
lib/open_food_web/queries_product_distribution.rb
Normal file
19
lib/open_food_web/queries_product_distribution.rb
Normal file
@@ -0,0 +1,19 @@
|
||||
module OpenFoodWeb
|
||||
class QueriesProductDistribution
|
||||
def self.active_distributors
|
||||
(active_distributors_for_product_distributions + active_distributors_for_order_cycles).sort_by { |d| d.name }.uniq
|
||||
end
|
||||
|
||||
|
||||
private
|
||||
|
||||
def self.active_distributors_for_product_distributions
|
||||
Enterprise.is_distributor.with_distributed_active_products_on_hand.by_name
|
||||
end
|
||||
|
||||
def self.active_distributors_for_order_cycles
|
||||
OrderCycle.active.map { |oc| oc.distributors }.flatten.uniq
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
15
spec/lib/open_food_web/queries_product_distribution_spec.rb
Normal file
15
spec/lib/open_food_web/queries_product_distribution_spec.rb
Normal file
@@ -0,0 +1,15 @@
|
||||
require 'open_food_web/queries_product_distribution'
|
||||
|
||||
module OpenFoodWeb
|
||||
describe QueriesProductDistribution do
|
||||
it "fetches active distributors" do
|
||||
d1 = double(:distributor_a, name: 'a')
|
||||
d2 = double(:distributor_b, name: 'b')
|
||||
d3 = double(:distributor_c, name: 'c')
|
||||
|
||||
QueriesProductDistribution.should_receive(:active_distributors_for_product_distributions).and_return([d1, d3])
|
||||
QueriesProductDistribution.should_receive(:active_distributors_for_order_cycles).and_return([d1, d2])
|
||||
QueriesProductDistribution.active_distributors.should == [d1, d2, d3]
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user