mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-03-24 05:38:52 +00:00
Scoping old generalised order cycle helper methods to a specific order cycle
This commit is contained in:
@@ -31,7 +31,7 @@ module Admin
|
||||
|
||||
respond_to do |format|
|
||||
if @order_cycle.save
|
||||
OpenFoodNetwork::OrderCycleFormApplicator.new(@order_cycle, order_cycle_permitted_enterprises).go!
|
||||
OpenFoodNetwork::OrderCycleFormApplicator.new(@order_cycle, permitted_enterprises_for(@order_cycle)).go!
|
||||
|
||||
flash[:notice] = 'Your order cycle has been created.'
|
||||
format.html { redirect_to admin_order_cycles_path }
|
||||
@@ -48,7 +48,7 @@ module Admin
|
||||
|
||||
respond_to do |format|
|
||||
if @order_cycle.update_attributes(params[:order_cycle])
|
||||
OpenFoodNetwork::OrderCycleFormApplicator.new(@order_cycle, order_cycle_permitted_enterprises).go!
|
||||
OpenFoodNetwork::OrderCycleFormApplicator.new(@order_cycle, permitted_enterprises_for(@order_cycle)).go!
|
||||
|
||||
flash[:notice] = 'Your order cycle has been updated.'
|
||||
format.html { redirect_to admin_order_cycles_path }
|
||||
@@ -93,11 +93,11 @@ module Admin
|
||||
end
|
||||
|
||||
def require_coordinator
|
||||
if params[:coordinator_id] && @order_cycle.coordinator = order_cycle_coordinating_enterprises.find_by_id(params[:coordinator_id])
|
||||
if params[:coordinator_id] && @order_cycle.coordinator = permitted_coordinating_enterprises_for(@order_cycle).find_by_id(params[:coordinator_id])
|
||||
return
|
||||
end
|
||||
|
||||
available_coordinators = order_cycle_coordinating_enterprises.select(&:confirmed?)
|
||||
available_coordinators = permitted_coordinating_enterprises_for(@order_cycle).select(&:confirmed?)
|
||||
case available_coordinators.count
|
||||
when 0
|
||||
flash[:error] = "None of your enterprises have permission to coordinate an order cycle"
|
||||
|
||||
@@ -3,32 +3,32 @@ module OrderCyclesHelper
|
||||
@current_order_cycle ||= current_order(false).andand.order_cycle
|
||||
end
|
||||
|
||||
def order_cycle_permitted_enterprises
|
||||
OpenFoodNetwork::Permissions.new(spree_current_user).order_cycle_enterprises
|
||||
def permitted_enterprises_for(order_cycle)
|
||||
OpenFoodNetwork::Permissions.new(spree_current_user).order_cycle_enterprises_for(order_cycle: order_cycle)
|
||||
end
|
||||
|
||||
def order_cycle_producer_enterprises
|
||||
order_cycle_permitted_enterprises.is_primary_producer.by_name
|
||||
def permitted_producer_enterprises_for(order_cycle)
|
||||
permitted_enterprises_for(order_cycle).is_primary_producer.by_name
|
||||
end
|
||||
|
||||
def order_cycle_producer_enterprise_options
|
||||
validated_enterprise_options order_cycle_producer_enterprises, confirmed: true
|
||||
def permitted_producer_enterprise_options_for(order_cycle)
|
||||
validated_enterprise_options permitted_producer_enterprises_for(order_cycle), confirmed: true
|
||||
end
|
||||
|
||||
def order_cycle_coordinating_enterprises
|
||||
def permitted_coordinating_enterprises_for(order_cycle)
|
||||
Enterprise.managed_by(spree_current_user).is_distributor.by_name
|
||||
end
|
||||
|
||||
def order_cycle_coordinating_enterprise_options
|
||||
validated_enterprise_options order_cycle_coordinating_enterprises, confirmed: true
|
||||
def permitted_coordinating_enterprise_options_for(order_cycle)
|
||||
validated_enterprise_options permitted_coordinating_enterprises_for(order_cycle), confirmed: true
|
||||
end
|
||||
|
||||
def order_cycle_hub_enterprises
|
||||
order_cycle_permitted_enterprises.is_hub.by_name
|
||||
def permitted_hub_enterprises_for(order_cycle)
|
||||
permitted_enterprises_for(order_cycle).is_hub.by_name
|
||||
end
|
||||
|
||||
def order_cycle_hub_enterprise_options
|
||||
validated_enterprise_options order_cycle_hub_enterprises, confirmed: true, shipping_and_payment_methods: true
|
||||
def permitted_hub_enterprise_options_for(order_cycle)
|
||||
validated_enterprise_options permitted_hub_enterprises_for(order_cycle), confirmed: true, shipping_and_payment_methods: true
|
||||
end
|
||||
|
||||
def order_cycle_status_class(order_cycle)
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
= render 'exchange_supplied_products_form'
|
||||
|
||||
- if spree_current_user.enterprises.include? @order_cycle.coordinator
|
||||
= select_tag :new_supplier_id, options_for_select(order_cycle_producer_enterprise_options), {'ng-model' => 'new_supplier_id'}
|
||||
= select_tag :new_supplier_id, options_for_select(permitted_producer_enterprise_options_for(@order_cycle)), {'ng-model' => 'new_supplier_id'}
|
||||
|
||||
= f.submit 'Add supplier', 'ng-click' => 'addSupplier($event)'
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
%h2 Coordinator
|
||||
-if spree_current_user.enterprises.include? @order_cycle.coordinator
|
||||
= f.label :coordinator_id, 'Coordinator'
|
||||
= f.select :coordinator_id, order_cycle_coordinating_enterprise_options, { include_blank: true }, {'ng-model' => 'order_cycle.coordinator_id', 'ofn-on-change' => 'order_cycle.coordinator_fees = []', 'required' => true}
|
||||
= f.select :coordinator_id, permitted_coordinating_enterprise_options_for(@order_cycle), { include_blank: true }, {'ng-model' => 'order_cycle.coordinator_id', 'ofn-on-change' => 'order_cycle.coordinator_fees = []', 'required' => true}
|
||||
= render 'coordinator_fees', f: f
|
||||
- else
|
||||
= @order_cycle.coordinator.name
|
||||
@@ -45,7 +45,7 @@
|
||||
= render 'exchange_distributed_products_form'
|
||||
|
||||
- if spree_current_user.enterprises.include? @order_cycle.coordinator
|
||||
= select_tag :new_distributor_id, options_for_select(order_cycle_hub_enterprise_options), {'ng-model' => 'new_distributor_id'}
|
||||
= select_tag :new_distributor_id, options_for_select(permitted_hub_enterprise_options_for(@order_cycle)), {'ng-model' => 'new_distributor_id'}
|
||||
= f.submit 'Add distributor', 'ng-click' => 'addDistributor($event)'
|
||||
|
||||
.actions
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
.two.columns.alpha
|
||||
|
||||
.ten.columns
|
||||
= select_tag :coordinator_id, options_for_select(order_cycle_coordinating_enterprise_options), { 'required' => true, class: 'select2 fullwidth'}
|
||||
= select_tag :coordinator_id, options_for_select(permitted_coordinating_enterprise_options_for(@order_cycle)), { 'required' => true, class: 'select2 fullwidth'}
|
||||
.two.columns.alpha
|
||||
= f.submit "Continue >"
|
||||
|
||||
|
||||
@@ -1,46 +1,44 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe OrderCyclesHelper do
|
||||
let(:oc) { double(:order_cycle) }
|
||||
|
||||
describe "finding producer enterprise options" do
|
||||
before do
|
||||
helper.stub(:order_cycle_producer_enterprises) { "enterprise list" }
|
||||
helper.stub(:permitted_producer_enterprises_for) { "enterprise list" }
|
||||
end
|
||||
|
||||
it "asks for a validation option list" do
|
||||
expect(helper).to receive(:validated_enterprise_options).with("enterprise list", {confirmed: true})
|
||||
helper.order_cycle_producer_enterprise_options
|
||||
helper.permitted_producer_enterprise_options_for(oc)
|
||||
end
|
||||
end
|
||||
|
||||
describe "finding coodinator enterprise options" do
|
||||
before do
|
||||
helper.stub(:order_cycle_coordinating_enterprises) { "enterprise list" }
|
||||
helper.stub(:permitted_coordinating_enterprises_for) { "enterprise list" }
|
||||
end
|
||||
|
||||
it "asks for a validation option list" do
|
||||
expect(helper).to receive(:validated_enterprise_options).with("enterprise list", {confirmed: true})
|
||||
helper.order_cycle_coordinating_enterprise_options
|
||||
helper.permitted_coordinating_enterprise_options_for(oc)
|
||||
end
|
||||
end
|
||||
|
||||
describe "finding hub enterprise options" do
|
||||
before do
|
||||
helper.stub(:order_cycle_hub_enterprises) { "enterprise list" }
|
||||
helper.stub(:permitted_hub_enterprises_for) { "enterprise list" }
|
||||
end
|
||||
|
||||
it "asks for a validation option list" do
|
||||
expect(helper).to receive(:validated_enterprise_options).with("enterprise list", {confirmed: true, shipping_and_payment_methods: true})
|
||||
helper.order_cycle_hub_enterprise_options
|
||||
helper.permitted_hub_enterprise_options_for(oc)
|
||||
end
|
||||
end
|
||||
|
||||
describe "building a validated enterprise list" do
|
||||
let(:e) { create(:distributor_enterprise, name: 'enterprise') }
|
||||
|
||||
before do
|
||||
helper.stub(:order_cycle_permitted_enterprises) { Enterprise.where(id: e.id) }
|
||||
end
|
||||
|
||||
it "returns enterprises without shipping methods as disabled" do
|
||||
create(:payment_method, distributors: [e])
|
||||
expect(helper.send(:validated_enterprise_options, [e], shipping_and_payment_methods: true))
|
||||
|
||||
Reference in New Issue
Block a user