From d35605be2ff9724e86ced451d65f2f484bce24ca Mon Sep 17 00:00:00 2001 From: abhilash Date: Mon, 20 Mar 2017 01:49:08 +0530 Subject: [PATCH 1/2] Added code to make the reorder functionality work correctly --- README.md | 7 ++++--- app/controllers/spree/orders_controller_decorator.rb | 9 ++++----- config/routes.rb | 2 +- spree_reorder.gemspec | 11 +++++------ 4 files changed, 14 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index a00e50c..b4371db 100644 --- a/README.md +++ b/README.md @@ -5,10 +5,11 @@ This is just a simple extension to add a "Reorder" button to the Orders show vie To install, just add this to your Gemfile: - gem 'spree_reorder', github: 'onedanshow/spree-reorder', branch: '3-0-stable' + gem 'spree_reorder', github: 'onedanshow/spree-reorder', branch: '3-2-stable' -I'll add more functionality as needed, but this mainly was an experiment to play with writing a Spree extension. +Using the gem written by Daniel Dixon: https://github.com/onedanshow/spree-reorder. +Improved it to work with Spree 3.2.0.rc3, as Spree::OrderPopulator is deprecated and has been removed. -Copyright (c) 2015 Daniel Dixon, released under the New BSD License +Copyright (c) 2017 Abhilash M Kuruo, released under the New BSD License diff --git a/app/controllers/spree/orders_controller_decorator.rb b/app/controllers/spree/orders_controller_decorator.rb index 950e02b..013af86 100644 --- a/app/controllers/spree/orders_controller_decorator.rb +++ b/app/controllers/spree/orders_controller_decorator.rb @@ -1,16 +1,15 @@ Spree::OrdersController.class_eval do def reorder - populator = Spree::OrderPopulator.new(current_order(create_order_if_necessary: true), current_currency) + current_order(create_order_if_necessary: true) order = Spree::Order.where( number: params[:id] ).first - if order.line_items.select {|li| populator.populate(li.variant.id, li.quantity) }.any? - respond_with(@order) do |format| + if order.line_items.select{ |li| @current_order.contents.add(li.variant, li.quantity) } + respond_with(@current_order) do |format| format.html { redirect_to cart_path } end else - flash[:error] = populator.errors.full_messages.join(' '.freeze) + flash[:error] = @current_order.errors.full_messages.join(' '.freeze) redirect_to :back end - end end diff --git a/config/routes.rb b/config/routes.rb index c877f33..1e23e90 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,3 +1,3 @@ Spree::Core::Engine.routes.draw do - match '/orders/:id/reorder' => 'orders#reorder', :via => :get, :as => :reorder_order + match '/orders/:id/reorder' => 'orders#reorder', via: :get, as: :reorder_order end diff --git a/spree_reorder.gemspec b/spree_reorder.gemspec index ec574e5..a02f6d6 100644 --- a/spree_reorder.gemspec +++ b/spree_reorder.gemspec @@ -2,17 +2,16 @@ Gem::Specification.new do |s| s.platform = Gem::Platform::RUBY s.name = 'spree_reorder' - s.version = '3.0.0' + s.version = '3.2.0' s.summary = 'Simply adds a Reorder button to the Order show view.' - s.description = 'Simply adds a Reorder button to the Order show view.' + s.description = 'Allows user to reorder an existing order from his order listing.' s.required_ruby_version = '>= 1.9.2' - s.author = 'Daniel Dixon' - s.email = 'code@danieldixon.com' - s.homepage = 'http://www.danieldixon.com' + s.author = 'Abhilash M Kuruo' + s.email = 'abhilash@bitboxsoftwares.com' s.require_path = 'lib' s.requirements << 'none' - s.add_dependency 'spree_frontend', '~> 3.0' + s.add_dependency 'spree_frontend', '~> 3.2.0.rc3' end From eadd7b1dfc8c908c86a979bf9fa390e6c1b7b13c Mon Sep 17 00:00:00 2001 From: abhilash Date: Mon, 20 Mar 2017 02:03:57 +0530 Subject: [PATCH 2/2] corrected the load path --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b4371db..6d046f4 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ This is just a simple extension to add a "Reorder" button to the Orders show vie To install, just add this to your Gemfile: - gem 'spree_reorder', github: 'onedanshow/spree-reorder', branch: '3-2-stable' + gem 'spree_reorder', github: 'tallerguy/spree-reorder', branch: '3-2-stable' Using the gem written by Daniel Dixon: https://github.com/onedanshow/spree-reorder.