From 912c60f720d8e296307b8e35e855ceb0acc79ddf Mon Sep 17 00:00:00 2001 From: Rohan Mitchell Date: Thu, 20 Nov 2014 10:06:23 +1100 Subject: [PATCH] Do not show producers in hubs list --- .../override_variants_controller.js.coffee | 4 +-- .../admin/products_controller_decorator.rb | 3 +- app/helpers/admin/injection_helper.rb | 4 +++ app/helpers/order_cycles_helper.rb | 32 +++++++++++-------- .../override_variants/_data.html.haml | 3 +- .../override_variants/_hub_choice.html.haml | 2 +- spec/features/admin/override_variants_spec.rb | 3 +- 7 files changed, 30 insertions(+), 21 deletions(-) diff --git a/app/assets/javascripts/admin/controllers/override_variants_controller.js.coffee b/app/assets/javascripts/admin/controllers/override_variants_controller.js.coffee index a2de809d8c..980256f90f 100644 --- a/app/assets/javascripts/admin/controllers/override_variants_controller.js.coffee +++ b/app/assets/javascripts/admin/controllers/override_variants_controller.js.coffee @@ -1,2 +1,2 @@ -angular.module("ofn.admin").controller "AdminOverrideVariantsCtrl", ($scope, Enterprises) -> - $scope.Enterprises = Enterprises +angular.module("ofn.admin").controller "AdminOverrideVariantsCtrl", ($scope, hubs) -> + $scope.hubs = hubs diff --git a/app/controllers/spree/admin/products_controller_decorator.rb b/app/controllers/spree/admin/products_controller_decorator.rb index 25b25c6b8f..1bf90fb74a 100644 --- a/app/controllers/spree/admin/products_controller_decorator.rb +++ b/app/controllers/spree/admin/products_controller_decorator.rb @@ -50,8 +50,7 @@ Spree::Admin::ProductsController.class_eval do end def override_variants - @all_enterprises = [] - @my_enterprises = order_cycle_permitted_enterprises.by_name + @hubs = order_cycle_hub_enterprises(without_validation: true) end diff --git a/app/helpers/admin/injection_helper.rb b/app/helpers/admin/injection_helper.rb index 7db604ba5f..3d0b68f450 100644 --- a/app/helpers/admin/injection_helper.rb +++ b/app/helpers/admin/injection_helper.rb @@ -25,6 +25,10 @@ module Admin admin_inject_json_ams_array "admin.shipping_methods", "shippingMethods", @shipping_methods, Api::Admin::IdNameSerializer end + def admin_inject_hubs + admin_inject_json_ams_array "ofn.admin", "hubs", @hubs, Api::Admin::IdNameSerializer + end + def admin_inject_producers admin_inject_json_ams_array "ofn.admin", "producers", @producers, Api::Admin::IdNameSerializer end diff --git a/app/helpers/order_cycles_helper.rb b/app/helpers/order_cycles_helper.rb index 2d230f19d2..3868de95c0 100644 --- a/app/helpers/order_cycles_helper.rb +++ b/app/helpers/order_cycles_helper.rb @@ -15,23 +15,27 @@ module OrderCyclesHelper order_cycle_permitted_enterprises.is_distributor.by_name end - def order_cycle_hub_enterprises + def order_cycle_hub_enterprises(options={}) enterprises = order_cycle_permitted_enterprises.is_distributor.by_name - enterprises.map do |e| - disabled_message = nil - if e.shipping_methods.empty? && e.payment_methods.available.empty? - disabled_message = 'no shipping or payment methods' - elsif e.shipping_methods.empty? - disabled_message = 'no shipping methods' - elsif e.payment_methods.available.empty? - disabled_message = 'no payment methods' - end + if options[:without_validation] + enterprises + else + enterprises.map do |e| + disabled_message = nil + if e.shipping_methods.empty? && e.payment_methods.available.empty? + disabled_message = 'no shipping or payment methods' + elsif e.shipping_methods.empty? + disabled_message = 'no shipping methods' + elsif e.payment_methods.available.empty? + disabled_message = 'no payment methods' + end - if disabled_message - ["#{e.name} (#{disabled_message})", e.id, {disabled: true}] - else - [e.name, e.id] + if disabled_message + ["#{e.name} (#{disabled_message})", e.id, {disabled: true}] + else + [e.name, e.id] + end end end end diff --git a/app/views/spree/admin/products/override_variants/_data.html.haml b/app/views/spree/admin/products/override_variants/_data.html.haml index 6ff3621ab4..cc615dc3cd 100644 --- a/app/views/spree/admin/products/override_variants/_data.html.haml +++ b/app/views/spree/admin/products/override_variants/_data.html.haml @@ -1 +1,2 @@ -= admin_inject_enterprises += admin_inject_hubs + diff --git a/app/views/spree/admin/products/override_variants/_hub_choice.html.haml b/app/views/spree/admin/products/override_variants/_hub_choice.html.haml index a2519b7312..aa0f7ab738 100644 --- a/app/views/spree/admin/products/override_variants/_hub_choice.html.haml +++ b/app/views/spree/admin/products/override_variants/_hub_choice.html.haml @@ -2,6 +2,6 @@ .two.columns.alpha Hub .four.columns - %select.select2.fullwidth#hub_id{ 'ng-model' => 'hub_id', name: 'hub_id', 'ng-options' => 'hub.id as hub.name for hub in Enterprises.my_enterprises' } + %select.select2.fullwidth#hub_id{ 'ng-model' => 'hub_id', name: 'hub_id', 'ng-options' => 'hub.id as hub.name for hub in hubs' } .ten.columns.omega %input{ type: 'button', value: 'Go', 'ng-click' => 'selectHub()' } diff --git a/spec/features/admin/override_variants_spec.rb b/spec/features/admin/override_variants_spec.rb index 5df70b200b..e67eae34ce 100644 --- a/spec/features/admin/override_variants_spec.rb +++ b/spec/features/admin/override_variants_spec.rb @@ -17,10 +17,11 @@ feature %q{ describe "selecting a hub" do let!(:hub) { create(:distributor_enterprise) } + let!(:producer) { create(:supplier_enterprise) } it "displays a list of hub choices" do visit '/admin/products/override_variants' - page.should have_select2 'hub_id', with_options: [hub.name] + page.should have_select2 'hub_id', options: ['', hub.name] end end end