Redirect /products to enterprise path, since this page did not have correct product filtering

This commit is contained in:
Rohan Mitchell
2013-10-24 11:33:03 +11:00
parent 0d1dd361d6
commit 767bda3093
4 changed files with 13 additions and 6 deletions

View File

@@ -29,7 +29,7 @@ class ApplicationController < ActionController::Base
end
def require_distributor_chosen
unless current_order(false).andand.distributor
unless current_distributor
redirect_to spree.root_path
false
end

View File

@@ -1,6 +1,7 @@
class BaseController < ApplicationController
include Spree::Core::ControllerHelpers
include Spree::Core::ControllerHelpers::RespondWith
include EnterprisesHelper
include OrderCyclesHelper
helper 'spree/base'

View File

@@ -3,15 +3,11 @@ require 'open_food_network/split_products_by_distribution'
Spree::ProductsController.class_eval do
include EnterprisesHelper
include OrderCyclesHelper
include OpenFoodNetwork::SplitProductsByDistribution
before_filter :require_distributor_chosen, only: :index
respond_override :index => { :html => { :success => lambda {
if current_order_cycle
order_cycle_products = current_order_cycle.products
@products.select! { |p| order_cycle_products.include? p }
end
redirect_to main_app.enterprise_path(current_distributor)
} } }
end

View File

@@ -7,4 +7,14 @@ describe Spree::ProductsController do
response.should redirect_to spree.root_path
end
end
context "when a distributor has been chosen" do
it "redirects #index to the distributor page" do
d = create(:distributor_enterprise)
controller.stub(:current_distributor) { d }
spree_get :index
response.should redirect_to enterprise_path(d)
end
end
end