mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-29 21:17:17 +00:00
Instead we will make sure the order cycle is not available on the shopfront if it is doesn't have valid shipping methods. This will preven the issue where if one distributor deletes their shipping method, we don't want to invalidate the order cycle for all other distributors. Co-authored-by: Maikel <maikel@email.org.au>
40 lines
982 B
Ruby
40 lines
982 B
Ruby
# frozen_string_literal: true
|
|
|
|
require 'spree/core/controller_helpers/order'
|
|
require 'open_food_network/tag_rule_applicator'
|
|
|
|
class BaseController < ApplicationController
|
|
layout 'darkswarm'
|
|
|
|
include Spree::Core::ControllerHelpers::Order
|
|
|
|
include I18nHelper
|
|
include OrderCyclesHelper
|
|
|
|
before_action :set_locale
|
|
|
|
private
|
|
|
|
def set_order_cycles
|
|
if !@distributor.ready_for_checkout?
|
|
@order_cycles = OrderCycle.where('false')
|
|
return
|
|
end
|
|
|
|
@order_cycles = Shop::OrderCyclesList.new(@distributor, current_customer).call
|
|
|
|
set_order_cycle
|
|
end
|
|
|
|
# Default to the only order cycle if there's only one
|
|
#
|
|
# Here we need to use @order_cycles.size not @order_cycles.count
|
|
# because OrderCyclesList returns a modified ActiveRecord::Relation
|
|
# and these modifications are not seen if it is reloaded with count
|
|
def set_order_cycle
|
|
return if @order_cycles.size != 1
|
|
|
|
current_order(true).set_order_cycle! @order_cycles.first
|
|
end
|
|
end
|