From 9fa5a9e766a23e03c5746dcf92af6b400620fe7a Mon Sep 17 00:00:00 2001 From: Rob Harrington Date: Thu, 12 Feb 2015 10:58:32 +1100 Subject: [PATCH] Fix before_filter load order for enterprises#shop --- app/controllers/enterprises_controller.rb | 39 +++++++++++------------ 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/app/controllers/enterprises_controller.rb b/app/controllers/enterprises_controller.rb index 77cebdb183..097139556c 100644 --- a/app/controllers/enterprises_controller.rb +++ b/app/controllers/enterprises_controller.rb @@ -2,6 +2,9 @@ class EnterprisesController < BaseController layout "darkswarm" helper Spree::ProductsHelper include OrderCyclesHelper + + # These prepended filters are in the reverse order of execution + prepend_before_filter :load_active_distributors, :set_order_cycles, :require_distributor_chosen, :reset_order, only: :shop before_filter :clean_permalink, only: :check_permalink respond_to :js, only: :permalink_checker @@ -56,26 +59,6 @@ class EnterprisesController < BaseController end end - def shop - distributor = Enterprise.is_distributor.find_by_permalink(params[:id]) || Enterprise.is_distributor.find(params[:id]) - order = current_order(true) - - if order.distributor and order.distributor != distributor - order.empty! - order.set_order_cycle! nil - end - - order.distributor = distributor - - order_cycle_options = OrderCycle.active.with_distributor(distributor) - order.order_cycle = order_cycle_options.first if order_cycle_options.count == 1 - order.save! - - require_distributor_chosen - set_order_cycles - load_active_distributors - end - def check_permalink return render text: params[:permalink], status: 409 if Enterprise.find_by_permalink params[:permalink] @@ -92,4 +75,20 @@ class EnterprisesController < BaseController def clean_permalink params[:permalink] = params[:permalink].parameterize end + + def reset_order + distributor = Enterprise.is_distributor.find_by_permalink(params[:id]) || Enterprise.is_distributor.find(params[:id]) + order = current_order(true) + + if order.distributor and order.distributor != distributor + order.empty! + order.set_order_cycle! nil + end + + order.distributor = distributor + + order_cycle_options = OrderCycle.active.with_distributor(distributor) + order.order_cycle = order_cycle_options.first if order_cycle_options.count == 1 + order.save! + end end