From e50bbeaefbbbf6dd053e7e207f0d1c98be70d5d4 Mon Sep 17 00:00:00 2001 From: Rohan Mitchell Date: Fri, 12 Sep 2014 11:33:47 +1000 Subject: [PATCH] Edit product form shows permitted suppliers --- .../admin/products_controller_decorator.rb | 2 +- .../add_supplier_to_admin_product.rb | 5 ----- .../_form/add_supplier.html.haml.deface | 7 ++++++ .../admin/products/_supplier_form.html.haml | 5 ----- spec/features/admin/products_spec.rb | 22 +++++++++++++++---- 5 files changed, 26 insertions(+), 15 deletions(-) delete mode 100644 app/overrides/add_supplier_to_admin_product.rb create mode 100644 app/overrides/spree/admin/products/_form/add_supplier.html.haml.deface delete mode 100644 app/views/spree/admin/products/_supplier_form.html.haml diff --git a/app/controllers/spree/admin/products_controller_decorator.rb b/app/controllers/spree/admin/products_controller_decorator.rb index 75c946ad0f..e06053588c 100644 --- a/app/controllers/spree/admin/products_controller_decorator.rb +++ b/app/controllers/spree/admin/products_controller_decorator.rb @@ -1,5 +1,5 @@ Spree::Admin::ProductsController.class_eval do - before_filter :load_form_data, only: [:bulk_edit, :new] + before_filter :load_form_data, only: [:bulk_edit, :new, :edit] before_filter :load_bpe_data, only: :bulk_edit alias_method :location_after_save_original, :location_after_save diff --git a/app/overrides/add_supplier_to_admin_product.rb b/app/overrides/add_supplier_to_admin_product.rb deleted file mode 100644 index a608f4e282..0000000000 --- a/app/overrides/add_supplier_to_admin_product.rb +++ /dev/null @@ -1,5 +0,0 @@ -Deface::Override.new(:virtual_path => "spree/admin/products/_form", - :insert_top => "[data-hook='admin_product_form_right']", - :partial => "spree/admin/products/supplier_form", - :name => "add_supplier_to_admin_product", - :original => '18bd94de3eb8bdf8b669932bf04fc59e2e85288b') \ No newline at end of file diff --git a/app/overrides/spree/admin/products/_form/add_supplier.html.haml.deface b/app/overrides/spree/admin/products/_form/add_supplier.html.haml.deface new file mode 100644 index 0000000000..1cc609bef4 --- /dev/null +++ b/app/overrides/spree/admin/products/_form/add_supplier.html.haml.deface @@ -0,0 +1,7 @@ +/ insert_top "[data-hook='admin_product_form_right']" + += f.field_container :supplier do + = f.label :supplier + %br + = f.collection_select(:supplier_id, @producers, :id, :name, {:include_blank => true}, {:class => "select2"}) + = f.error_message_on :supplier diff --git a/app/views/spree/admin/products/_supplier_form.html.haml b/app/views/spree/admin/products/_supplier_form.html.haml deleted file mode 100644 index 3e5c01c2a3..0000000000 --- a/app/views/spree/admin/products/_supplier_form.html.haml +++ /dev/null @@ -1,5 +0,0 @@ -= f.field_container :supplier do - = f.label :supplier - %br - = f.collection_select(:supplier_id, Enterprise.is_primary_producer.managed_by(spree_current_user).by_name, :id, :name, {:include_blank => true}, {:class => "select2"}) - = f.error_message_on :supplier diff --git a/spec/features/admin/products_spec.rb b/spec/features/admin/products_spec.rb index 201381f852..1f61b07d2a 100644 --- a/spec/features/admin/products_spec.rb +++ b/spec/features/admin/products_spec.rb @@ -86,11 +86,14 @@ feature %q{ context "as an enterprise user" do - before(:each) do + before do @new_user = create_enterprise_user @supplier2 = create(:supplier_enterprise, name: 'Another Supplier') + @supplier_permitted = create(:supplier_enterprise, name: 'Permitted Supplier') @new_user.enterprise_roles.build(enterprise: @supplier2).save @new_user.enterprise_roles.build(enterprise: @distributors[0]).save + create(:enterprise_relationship, parent: @supplier_permitted, child: @supplier2, + permissions_list: [:manage_products]) login_to_admin_as @new_user end @@ -116,9 +119,8 @@ feature %q{ select taxon.name, from: "product_primary_taxon_id" # Should only have suppliers listed which the user can manage - within "#product_supplier_id" do - page.should_not have_content @supplier.name - end + page.should have_select 'product_supplier_id', with_options: [@supplier2.name, @supplier_permitted.name] + page.should_not have_select 'product_supplier_id', with_options: [@supplier.name] click_button 'Create' @@ -127,6 +129,18 @@ feature %q{ product.supplier.should == @supplier2 end + scenario "editing a product" do + product = create(:simple_product, name: 'a product', supplier: @supplier2) + + visit spree.edit_admin_product_path product + + select 'Permitted Supplier', from: 'product_supplier_id' + click_button 'Update' + flash_message.should == 'Product "a product" has been successfully updated!' + product.reload + product.supplier.should == @supplier_permitted + end + scenario "editing product distributions" do product = create(:simple_product, supplier: @supplier2)