spree_recurring_order 2.1.8 → 2.1.9

Sign up to get free protection for your applications and to get access to all the features.
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