spree_recurring_order 2.1.8 → 2.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9bb5682fa3c672ed9fbcd1fb9d8f5c331e7b0f1b
4
- data.tar.gz: fff9a44ba0e5c6127a62bc3a327c5ad909ea170f
3
+ metadata.gz: a0aa16ab77053b1ed94b81dc7532c4a5d7c5a7de
4
+ data.tar.gz: 70eb179a5bf2e16ce3479d28562abbe47d62f372
5
5
  SHA512:
6
- metadata.gz: 47fb2293cf7e715ef7e2d7bb30b1eb6a79781005aaf46a78a689a7aacd3197a0f387fc4d00034c3559b90a4242d6a2f5e50c25ee3b48af593810bc4b621043ad
7
- data.tar.gz: 329f5369ffb7edd94ee5d27ff3575bd419039bbead3cc86dface03de3dfd554f4197f806262ce44b23634275d5298e5ae23ce60a7ed9327d4e7643fcc22b9918
6
+ metadata.gz: a17b1eb9833aec91732a3271bb8fd5b9088b39f1e7f1787750125ed38edb90ca08a43d05d1d6ac3862025523abaef73772817f1c236c0959aa82b72e87a1dc50
7
+ data.tar.gz: 0a560af713ca32907fcc47aab6b425cbb9e6706df5420ca1027fde1c406e91c1d093cd00207fb034d70924ee90cbe2443d22265c66ec1b678d69283d114c2ba0
@@ -0,0 +1,13 @@
1
+ module Spree
2
+ module Admin
3
+ class RecurringEmailsController < Spree::Admin::BaseController
4
+
5
+ def create
6
+ order = Spree::Order.find_by(number: params[:number])
7
+ order.deliver_recurring_order_email
8
+ redirect_to(edit_admin_order_path(order))
9
+ end
10
+
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,7 @@
1
+ Spree::OrderMailer.class_eval do
2
+
3
+ def recurring_email(order_id)
4
+ #do nothing - this should be overriden
5
+ end
6
+
7
+ end
@@ -6,4 +6,10 @@ Spree::Order.class_eval do
6
6
  !recurring_order.nil?
7
7
  end
8
8
 
9
+ def deliver_recurring_order_email
10
+ if self.recurring?
11
+ Spree::OrderMailer.recurring_email(self.id).deliver
12
+ end
13
+ end
14
+
9
15
  end
@@ -0,0 +1,5 @@
1
+ Deface::Override.new(:virtual_path => "spree/admin/shared/_content_header",
2
+ :name => "add_send_email_button",
3
+ :insert_top => "[data-hook='toolbar']>ul",
4
+ :partial => "spree/admin/orders/send_recurring_email_button",
5
+ :disabled => false)
@@ -0,0 +1,2 @@
1
+ - if @order and @order.recurring?
2
+ %li= button_link_to Spree.t(:send_recurring_email), spree.admin_recurring_email_path(@order.number), :method => :post, :icon => 'icon-email'
@@ -5,4 +5,5 @@ Spree::Core::Engine.routes.draw do
5
5
 
6
6
  get "admin/recurring_orders/", controller: 'admin/recurring_orders', action: 'index', as: 'admin_recurring_orders'
7
7
  get "admin/recurring_orders/:number", controller: 'admin/recurring_orders', action: 'show', as: 'admin_recurring_order'
8
+ post "admin/recurring_emails/:number", controller: 'admin/recurring_emails', action: 'create', as: 'admin_recurring_email'
8
9
  end
@@ -0,0 +1,36 @@
1
+ require 'spec_helper'
2
+
3
+ describe Spree::Admin::RecurringEmailsController do
4
+
5
+ let(:user) { mock_model Spree::User, :last_incomplete_spree_order => nil, :has_spree_role? => true, :spree_api_key => 'fake' }
6
+
7
+ before :each do
8
+ controller.stub :spree_current_user => user
9
+ controller.stub :check_authorization
10
+ end
11
+
12
+ describe 'create' do
13
+
14
+ let(:order){ Spree::Order.new }
15
+
16
+ before :each do
17
+ order.stub(:number).and_return("G1234")
18
+ order.stub(:id).and_return("1")
19
+ Spree::Order.stub(:find_by).and_return(order)
20
+ end
21
+
22
+ it 'should send email' do
23
+ Spree::Order.should_receive(:find_by).with(number: "G1234").and_return(order)
24
+ order.should_receive(:deliver_recurring_order_email)
25
+
26
+ spree_post :create, { number: 'G1234' }
27
+ end
28
+
29
+ it 'should redirect order page' do
30
+ spree_post :create, { number: 'G1234' }
31
+ response.should redirect_to('/admin/orders/G1234/edit')
32
+ end
33
+
34
+ end
35
+
36
+ end
@@ -17,4 +17,28 @@ describe Spree::Order do
17
17
 
18
18
  end
19
19
 
20
+ describe 'deliver recurring order email' do
21
+
22
+ it 'should not deliver anything if order is not recurring' do
23
+ order = Spree::Order.new
24
+ order.stub(:recurring?).and_return false
25
+ order.deliver_recurring_order_email
26
+
27
+ Spree::OrderMailer.should_not_receive(:recurring_email)
28
+ end
29
+
30
+ it 'should deliver if order is recurring' do
31
+ order = Spree::Order.new
32
+ order.stub(:id).and_return 2
33
+ order.stub(:recurring?).and_return true
34
+
35
+ mail = double(Object)
36
+ Spree::OrderMailer.should_receive(:recurring_email).with(2).and_return(mail)
37
+ mail.should_receive(:deliver)
38
+
39
+ order.deliver_recurring_order_email
40
+ end
41
+
42
+ end
43
+
20
44
  end
@@ -2,7 +2,7 @@
2
2
  Gem::Specification.new do |s|
3
3
  s.platform = Gem::Platform::RUBY
4
4
  s.name = 'spree_recurring_order'
5
- s.version = '2.1.8'
5
+ s.version = '2.1.9'
6
6
  s.summary = 'Add the option to create a recurring order'
7
7
  s.description = ''
8
8
  s.required_ruby_version = '>= 2.0.0'
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
19
19
  s.add_dependency 'spree_core', '~> 2.1.3'
20
20
 
21
21
  s.add_runtime_dependency 'haml'
22
+ s.add_runtime_dependency 'delayed_job_active_record'
22
23
 
23
24
  s.add_development_dependency 'capybara', '~> 2.1'
24
25
  s.add_development_dependency 'coffee-rails'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_recurring_order
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.8
4
+ version: 2.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Francisco Trindade
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-15 00:00:00.000000000 Z
11
+ date: 2014-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree_core
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: delayed_job_active_record
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: capybara
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -196,14 +210,18 @@ files:
196
210
  - app/assets/stylesheets/admin/spree_recurring_order.css
197
211
  - app/assets/stylesheets/store/checkout.css
198
212
  - app/assets/stylesheets/store/spree_recurring_order.css
213
+ - app/controllers/spree/admin/recurring_emails_controller.rb
199
214
  - app/controllers/spree/admin/recurring_orders_controller.rb
200
215
  - app/controllers/spree/orders_controller_decorator.rb
201
216
  - app/controllers/spree/recurring_orders_controller.rb
217
+ - app/mailers/spree/order_mailer_decorator.rb
202
218
  - app/models/spree/order_decorator.rb
203
219
  - app/models/spree/recurring_order.rb
204
220
  - app/overrides/add_message_to_checkout.rb
221
+ - app/overrides/add_send_email_button.rb
205
222
  - app/overrides/add_tab_to_admin_menu.rb
206
223
  - app/overrides/replace_shopping_cart_checkout.rb
224
+ - app/views/spree/admin/orders/_send_recurring_email_button.haml
207
225
  - app/views/spree/admin/recurring_orders/index.html.erb
208
226
  - app/views/spree/admin/recurring_orders/show.html.erb
209
227
  - app/views/spree/admin/shared/_recurring_orders_tab.html.erb
@@ -220,6 +238,7 @@ files:
220
238
  - lib/spree_recurring_order.rb
221
239
  - lib/spree_recurring_order/engine.rb
222
240
  - lib/spree_recurring_order/factories.rb
241
+ - spec/controllers/spree/admin/recurring_emails_controller_spec.rb
223
242
  - spec/controllers/spree/admin/recurring_orders_controller_spec.rb
224
243
  - spec/controllers/spree/orders_controller_spec.rb
225
244
  - spec/controllers/spree/recurring_order_controller_spec.rb
@@ -252,6 +271,7 @@ signing_key:
252
271
  specification_version: 4
253
272
  summary: Add the option to create a recurring order
254
273
  test_files:
274
+ - spec/controllers/spree/admin/recurring_emails_controller_spec.rb
255
275
  - spec/controllers/spree/admin/recurring_orders_controller_spec.rb
256
276
  - spec/controllers/spree/orders_controller_spec.rb
257
277
  - spec/controllers/spree/recurring_order_controller_spec.rb