Determine producer options on order cycle screen through OpenFoodNetwork::Permissions class

This commit is contained in:
Rohan Mitchell
2014-08-26 09:51:18 +10:00
parent a7689973be
commit 8548a1a67e
4 changed files with 37 additions and 1 deletions

View File

@@ -1,3 +1,4 @@
require 'open_food_network/permissions'
require 'open_food_network/order_cycle_form_applicator'
module Admin

View File

@@ -25,7 +25,7 @@
%tr.products{'ng-show' => 'exchange.showProducts'}
= render 'exchange_supplied_products_form'
= select_tag :new_supplier_id, options_from_collection_for_select(Enterprise.is_primary_producer.managed_by(spree_current_user).by_name, :id, :name), {'ng-model' => 'new_supplier_id'}
= select_tag :new_supplier_id, options_from_collection_for_select(OpenFoodNetwork::Permissions.new(spree_current_user).order_cycle_producers, :id, :name), {'ng-model' => 'new_supplier_id'}
= f.submit 'Add supplier', 'ng-click' => 'addSupplier($event)'

View File

@@ -0,0 +1,19 @@
module OpenFoodNetwork
class Permissions
def initialize(user)
@user = user
end
def order_cycle_producers
managed_producers
end
private
def managed_producers
Enterprise.managed_by(@user).is_primary_producer.by_name
end
end
end

View File

@@ -0,0 +1,16 @@
require 'open_food_network/permissions'
module OpenFoodNetwork
describe Permissions do
let(:user) { double(:user) }
let(:permissions) { Permissions.new(user) }
let(:producer) { double(:enterprise) }
describe "finding producers that can be added to an order cycle" do
it "returns managed producers" do
permissions.stub(:managed_producers) { [producer] }
permissions.order_cycle_producers.should == [producer]
end
end
end
end