mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-25 20:46:48 +00:00
46 lines
1.5 KiB
Ruby
46 lines
1.5 KiB
Ruby
require 'spree/core/controller_helpers/respond_with_decorator'
|
|
require 'open_food_network/tag_rule_applicator'
|
|
|
|
class BaseController < ApplicationController
|
|
include Spree::Core::ControllerHelpers
|
|
include Spree::Core::ControllerHelpers::Auth
|
|
include Spree::Core::ControllerHelpers::Common
|
|
include Spree::Core::ControllerHelpers::Order
|
|
include Spree::Core::ControllerHelpers::RespondWith
|
|
|
|
include I18nHelper
|
|
include EnterprisesHelper
|
|
include OrderCyclesHelper
|
|
|
|
helper 'spree/base'
|
|
|
|
# Spree::Core::ControllerHelpers declares helper_method get_taxonomies, so we need to
|
|
# include Spree::ProductsHelper so that method is available on the controller
|
|
include Spree::ProductsHelper
|
|
|
|
before_filter :set_locale
|
|
before_filter :check_order_cycle_expiry
|
|
|
|
private
|
|
|
|
def set_order_cycles
|
|
unless @distributor.ready_for_checkout?
|
|
@order_cycles = OrderCycle.where('false')
|
|
return
|
|
end
|
|
|
|
@order_cycles = OrderCycle.with_distributor(@distributor).active
|
|
.order(@distributor.preferred_shopfront_order_cycle_order)
|
|
|
|
applicator = OpenFoodNetwork::TagRuleApplicator.new(@distributor,
|
|
"FilterOrderCycles",
|
|
current_customer.andand.tag_list)
|
|
applicator.filter!(@order_cycles)
|
|
|
|
# And default to the only order cycle if there's only the one
|
|
if @order_cycles.count == 1
|
|
current_order(true).set_order_cycle! @order_cycles.first
|
|
end
|
|
end
|
|
end
|