diff --git a/app/controllers/spree/admin/products_controller_decorator.rb b/app/controllers/spree/admin/products_controller_decorator.rb index 6ff934c..3e2fe08 100644 --- a/app/controllers/spree/admin/products_controller_decorator.rb +++ b/app/controllers/spree/admin/products_controller_decorator.rb @@ -12,7 +12,7 @@ def get_suppliers # Scopes the collection to the Supplier. def supplier_collection if try_spree_current_user && !try_spree_current_user.admin? && try_spree_current_user.supplier? - @collection = @collection.joins(:suppliers).where('spree_suppliers.id = ?', spree_current_user.supplier_id) + @collection = @collection.joins(:suppliers).where('spree_suppliers.id = ?', try_spree_current_user.supplier_id) end end diff --git a/app/models/spree/drop_ship_configuration.rb b/app/models/spree/drop_ship_configuration.rb index eff8c09..455dd14 100644 --- a/app/models/spree/drop_ship_configuration.rb +++ b/app/models/spree/drop_ship_configuration.rb @@ -4,10 +4,10 @@ class DropShipConfiguration < Preferences::Configuration # Automatically deliver drop ship orders by default. preference :automatically_deliver_orders_to_supplier, :boolean, default: true - # Default flat rate to charge drop ship suppliers per order for commission. + # Default flat rate to charge suppliers per order for commission. preference :default_commission_flat_rate, :float, default: 0.0 - # Default percentage to charge drop ship suppliers per order for commission. + # Default percentage to charge suppliers per order for commission. preference :default_commission_percentage, :float, default: 0.0 # Determines whether or not to email a new supplier their welcome email. diff --git a/app/overrides/spree/users/show/add_supplier_info.html.erb.deface b/app/overrides/spree/users/show/add_supplier_info.html.erb.deface deleted file mode 100644 index 9e57b4a..0000000 --- a/app/overrides/spree/users/show/add_supplier_info.html.erb.deface +++ /dev/null @@ -1,17 +0,0 @@ - - -<% if SpreeDropShip::Config[:allow_signup] or @user.supplier? %> -
-
<%= Spree.t(:supplier_info) %>
-
- <% if @user.supplier? %> - <%= @user.supplier.name %> - (<%= link_to Spree.t(:edit), spree.edit_admin_supplier_path(@user.supplier) %>) - <%= link_to @user.supplier.url, @user.supplier.url, target: '_blank' if @user.supplier.url.present? %> -
- Shipments: <%= @user.supplier.shipments.size %> (<%= link_to Spree.t(:manage), spree.admin_shipments_path %>) - <% else %> - <%= link_to Spree.t(:signup_to_become_a_supplier), spree.new_supplier_path %> - <% end %> -
-<% end %> diff --git a/app/views/spree/admin/drop_ship_settings/edit.html.erb b/app/views/spree/admin/drop_ship_settings/edit.html.erb index 88b3dae..a457a48 100644 --- a/app/views/spree/admin/drop_ship_settings/edit.html.erb +++ b/app/views/spree/admin/drop_ship_settings/edit.html.erb @@ -6,7 +6,7 @@ <%= form_tag(spree.admin_drop_ship_settings_path, :method => :put) do %>
- <% %w(allow_signup automatically_deliver_orders_to_supplier default_commission_flat_rate default_commission_percentage send_supplier_email).each do |key| + <% %w(automatically_deliver_orders_to_supplier default_commission_flat_rate default_commission_percentage send_supplier_email).each do |key| type = SpreeDropShip::Config.preference_type(key) %>
<%= label_tag(key, Spree.t(key) + ': ') + tag(:br) if type != :boolean %> diff --git a/lib/tasks/spree_sample.rake b/lib/tasks/spree_sample.rake index 2b308a6..871a5fd 100644 --- a/lib/tasks/spree_sample.rake +++ b/lib/tasks/spree_sample.rake @@ -2,12 +2,12 @@ namespace :spree_sample do desc "Create sample drop ship orders" task :drop_ship_orders => :environment do if Spree::Order.count == 0 - puts "Please run `rake spree_sample:load` first to create products and orders" + puts "Please run `rake spree_sample:load` first to create products and orders" exit end if Spree::Supplier.count == 0 - puts "Please run `rake spree_sample:suppliers` first to create suppliers" + puts "Please run `rake spree_sample:suppliers` first to create suppliers" exit end @@ -34,13 +34,13 @@ namespace :spree_sample do SpreeDropShip::Config[:send_supplier_email] = false @usa = Spree::Country.find_by_iso("US") - @ca = @usa.states.find_by_abbr("CA") + @ca = @usa.states.find_by_abbr("CA") count = Spree::Supplier.count puts "Creating Suppliers..." 5.times{|i| name = "Supplier #{count + i + 1}" - supplier = Spree::Supplier.new(:name => name, + supplier = Spree::Supplier.new(:name => name, :email => "#{name.parameterize}@example.com", :url => "http://example.com") supplier.build_address(:firstname => name, :lastname => name, @@ -60,9 +60,9 @@ namespace :spree_sample do count = 0 @products.each do |product| - product.supplier_id = @supplier_ids[rand(@supplier_ids.length)] + product.add_supplier! Spree::Supplier.find(@supplier_ids[rand(@supplier_ids.length)]) product.save - count += 1 + count += 1 print "*" end puts diff --git a/spec/features/admin/settings_spec.rb b/spec/features/admin/settings_spec.rb new file mode 100644 index 0000000..a66d20f --- /dev/null +++ b/spec/features/admin/settings_spec.rb @@ -0,0 +1,33 @@ +require 'spec_helper' + +describe 'Admin - DropShip Settings', js: true do + + before do + login_user create(:admin_user) + + visit spree.admin_path + within 'ul[data-hook=admin_tabs]' do + click_link 'Configuration' + end + within 'ul[data-hook=admin_configurations_sidebar_menu]' do + click_link 'Drop Ship Settings' + end + end + + it 'should be able to be updated' do + # Change settings + uncheck 'send_supplier_email' + fill_in 'default_commission_flat_rate', with: 0.30 + fill_in 'default_commission_percentage', with: 10 + click_button 'Update' + expect(page).to have_content('Drop ship settings successfully updated.') + + # Verify update saved properly by reversing checkboxes or checking field values. + check 'send_supplier_email' + click_button 'Update' + find_field('default_commission_flat_rate').value.to_f.should eql(0.3) + find_field('default_commission_percentage').value.to_f.should eql(10.0) + expect(page).to have_content('Drop ship settings successfully updated.') + end + +end diff --git a/spec/features/admin/suppliers_spec.rb b/spec/features/admin/suppliers_spec.rb index 4c6dbb0..a313734 100644 --- a/spec/features/admin/suppliers_spec.rb +++ b/spec/features/admin/suppliers_spec.rb @@ -74,10 +74,7 @@ before do @user = create(:supplier_user) login_user @user - visit spree.account_path - within 'dd.supplier-info' do - click_link 'Edit' - end + visit spree.edit_admin_supplier_path(@user.supplier) end scenario 'should only see tabs they have access to' do @@ -89,7 +86,6 @@ page.should_not have_link('Promotions') page.should_not have_link('Suppliers') page.should have_link('Shipments') - end end diff --git a/spree_drop_ship.gemspec b/spree_drop_ship.gemspec index e7d6ee2..2ed62ad 100644 --- a/spree_drop_ship.gemspec +++ b/spree_drop_ship.gemspec @@ -28,7 +28,7 @@ Gem::Specification.new do |s| s.add_development_dependency 'factory_girl_rails', '~> 4.2' s.add_development_dependency 'ffaker' s.add_development_dependency 'launchy' - s.add_development_dependency 'rspec-rails', '~> 2.13' + s.add_development_dependency 'rspec-rails', '~> 2.99' s.add_development_dependency 'sass-rails', '~> 4.0.2' s.add_development_dependency 'selenium-webdriver' s.add_development_dependency 'shoulda-matchers'