spree_delivery_options 2.1.3 → 2.1.4

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: 90430005aee2f9194697cdebfdb46ccd1015f8c5
4
- data.tar.gz: 67bc5085c228035dea01d91680eb9ebf44775ace
3
+ metadata.gz: ffa0c34813e0e8d339119ca8a2fd0fd9452f7432
4
+ data.tar.gz: 797b69f00b0950d2846e4f0996190f74c7956a54
5
5
  SHA512:
6
- metadata.gz: 9f5d66a7bec717d37b60e798b10c0c2597d343741aea9fa9946d4e751a9551922c9444b178a088c1401ae3ec0bb2b09531b9789b34eaaa8fd726b9de19cb43de
7
- data.tar.gz: e5058ee418577d59dff2ccc5e9361edbf32a89a242a124dc90491b6b817b0798b098bb3710c03da74ceb7221c43e6a95aa749d3b02d5b80153161d29f2e5769d
6
+ metadata.gz: 4e16f085274d39bb8b177cf77ca0cc98a0f627f3420e7e505a8401c4f6938640c618067733a97fe22774a49f2cb2384a7c8ae3f44a20a71d8927caf77049d5e9
7
+ data.tar.gz: 0fdfeb40e6644e8af809fc5df803288240dfbf12a5c3b4b70e8f9fa5790597bc4451d6ea8ffdf1ebfecf2896a565a9e2eb10c87f14229d5ab715e50d0b8e5369
@@ -0,0 +1,10 @@
1
+ #delivery-info {
2
+ table th, table td {
3
+ text-align: center;
4
+ }
5
+ .delivery-instructions {
6
+ label {
7
+ display: block;
8
+ }
9
+ }
10
+ }
@@ -0,0 +1,3 @@
1
+ /*
2
+ *= require admin/order_details
3
+ */
@@ -1,7 +1,7 @@
1
1
  @import 'store/variables';
2
2
 
3
3
  #shipping_method {
4
- .stock-delivery-date-title {
4
+ .stock-delivery-date-title, .stock-delivery-instructions-title {
5
5
  background-color: lighten($body_text_color, 70);
6
6
  text-align: center;
7
7
  text-transform: uppercase;
@@ -9,3 +9,18 @@
9
9
  font-size :11px;
10
10
  }
11
11
  }
12
+
13
+ #delivery_date, #delivery_instructions {
14
+ .field {
15
+ margin: 20px 0;
16
+
17
+ label {
18
+ margin-right: 20px;
19
+ }
20
+ }
21
+ }
22
+
23
+ #delivery_instructions textarea {
24
+ width: 100%;
25
+ min-height: 100px;
26
+ }
@@ -2,6 +2,14 @@ Spree::Order.class_eval do
2
2
  require 'date'
3
3
  require 'spree/order/checkout'
4
4
 
5
+ def valid_delivery_instructions?
6
+ if self.delivery_instructions.length > 500
7
+ self.errors[:delivery_instructions] << 'cannot be longer than 500 charachters'
8
+ return false
9
+ end
10
+ true
11
+ end
12
+
5
13
  def valid_delivery_date?
6
14
  self.errors[:delivery_date] << 'cannot be blank' unless self.delivery_date
7
15
 
@@ -32,7 +40,9 @@ end
32
40
 
33
41
  Spree::PermittedAttributes.checkout_attributes << :delivery_date
34
42
  Spree::PermittedAttributes.checkout_attributes << :delivery_time
43
+ Spree::PermittedAttributes.checkout_attributes << :delivery_instructions
35
44
 
45
+ Spree::Order.state_machine.before_transition :to => :payment, :do => :valid_delivery_instructions?
36
46
  Spree::Order.state_machine.before_transition :to => :payment, :do => :valid_delivery_date?
37
47
  Spree::Order.state_machine.before_transition :to => :payment, :do => :valid_delivery_time?
38
48
 
@@ -0,0 +1,5 @@
1
+ Deface::Override.new(:virtual_path => "spree/admin/orders/_form",
2
+ :name => "add_delivery_info_to_order_details",
3
+ :insert_bottom => "[data-hook='admin_order_form_fields']",
4
+ :partial => "spree/admin/orders/delivery_info",
5
+ :disabled => false)
@@ -0,0 +1,17 @@
1
+ %fieldset#delivery-info.no-border-bottom
2
+ %legend= Spree.t(:delivery_info)
3
+ %table
4
+ %thead
5
+ %th= Spree.t(:date)
6
+ %th= Spree.t(:time)
7
+ %tbody
8
+ %td= @order.delivery_date
9
+ %td= @order.delivery_time
10
+ .delivery-instructions
11
+ %label= Spree.t(:delivery_instructions)
12
+ %span
13
+ - if @order.delivery_instructions.nil?
14
+ No instructions provided
15
+ - else
16
+ = @order.delivery_instructions
17
+
@@ -0,0 +1,14 @@
1
+ %h5.stock-delivery-date-title
2
+ Delivery Date
3
+ #delivery_date
4
+ .field
5
+ = form.label :delivery_date, "Delivery Date"
6
+ = form.date_select :delivery_date
7
+ .field
8
+ = form.label :delivery_time, "Delivery Time"
9
+ = form.select :delivery_time, JSON.parse(SpreeDeliveryOptions::Config.delivery_time_options).values, {}
10
+ %h5.stock-delivery-instructions-title
11
+ Delivery Instructions/Comments
12
+ #delivery_instructions
13
+ .field
14
+ = form.text_area :delivery_instructions
@@ -0,0 +1,5 @@
1
+ class AddDeliveryInstructions < ActiveRecord::Migration
2
+ def change
3
+ add_column :spree_orders, :delivery_instructions, :text
4
+ end
5
+ end
@@ -7,6 +7,7 @@ module SpreeDeliveryOptions
7
7
 
8
8
  def add_stylesheets
9
9
  inject_into_file 'app/assets/stylesheets/store/all.css', " *= require store/spree_delivery_options\n", :before => /\*\//, :verbose => true
10
+ inject_into_file 'app/assets/stylesheets/admin/all.css', " *= require admin/spree_delivery_options\n", :before => /\*\//, :verbose => true
10
11
  end
11
12
 
12
13
  def add_migrations
@@ -79,6 +79,22 @@ describe Spree::Order do
79
79
 
80
80
  end
81
81
 
82
+ describe 'delivery instructions' do
83
+
84
+ it 'should accept valid delivery instructions' do
85
+ order.delivery_instructions = "This is awesome"
86
+ order.valid_delivery_instructions?.should be_true
87
+ order.errors[:delivery_instructions].should be_empty
88
+ end
89
+
90
+ it 'should not accept delivery instructions that are too long' do
91
+ order.delivery_instructions = "A" * 501
92
+ order.valid_delivery_instructions?.should be_false
93
+ order.errors[:delivery_instructions].should_not be_empty
94
+ end
95
+
96
+ end
97
+
82
98
 
83
99
  end
84
100
 
@@ -2,7 +2,7 @@
2
2
  Gem::Specification.new do |s|
3
3
  s.platform = Gem::Platform::RUBY
4
4
  s.name = 'spree_delivery_options'
5
- s.version = '2.1.3'
5
+ s.version = '2.1.4'
6
6
  s.summary = 'Adds delivery date and time during checkout'
7
7
  s.description = ''
8
8
  s.required_ruby_version = '>= 2.0.0'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_delivery_options
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.3
4
+ version: 2.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Francisco Trindade
@@ -191,9 +191,12 @@ files:
191
191
  - README.md
192
192
  - Rakefile
193
193
  - Versionfile
194
+ - app/assets/stylesheets/admin/order_details.scss
195
+ - app/assets/stylesheets/admin/spree_delivery_options.css
194
196
  - app/assets/stylesheets/store/delivery_checkout.scss
195
197
  - app/assets/stylesheets/store/spree_delivery_options.css
196
198
  - app/models/spree/order_decorator.rb
199
+ - app/overrides/add_delivery_info_to_order_details.rb
197
200
  - app/overrides/admin_order_information.rb
198
201
  - app/overrides/admin_orders_delivery_date_column.rb
199
202
  - app/overrides/admin_orders_delivery_date_filter.rb
@@ -202,13 +205,15 @@ files:
202
205
  - app/views/spree/admin/orders/_delivery_date_cell.html.erb
203
206
  - app/views/spree/admin/orders/_delivery_date_filter.html.erb
204
207
  - app/views/spree/admin/orders/_delivery_date_header.html.erb
208
+ - app/views/spree/admin/orders/_delivery_info.haml
205
209
  - app/views/spree/admin/shared/_admin_order_information_delivery_date.html.erb
206
- - app/views/spree/checkout/_delivery_date.html.erb
210
+ - app/views/spree/checkout/_delivery_date.haml
207
211
  - app/views/spree/orders/_order_delivery_date_details.html.erb
208
212
  - config/locales/en.yml
209
213
  - config/routes.rb
210
214
  - db/migrate/20130415025010_add_delivery_date_to_orders.rb
211
215
  - db/migrate/20131206053316_add_delivery_time_to_orders.rb
216
+ - db/migrate/20140109003355_add_delivery_instructions.rb
212
217
  - lib/generators/spree_delivery_options/install/install_generator.rb
213
218
  - lib/spree_delivery_options.rb
214
219
  - lib/spree_delivery_options/configuration.rb
@@ -1,7 +0,0 @@
1
- <h5 class="stock-delivery-date-title">Delivery Date</h5>
2
- <p id="delivery_date">
3
- <%= form.label :delivery_date, "Delivery Date" %><br />
4
- <%= form.date_select :delivery_date, default: Date.yesterday %><br />
5
- <%= form.label :delivery_time, "Delivery Time" %><br />
6
- <%= form.select :delivery_time, JSON.parse(SpreeDeliveryOptions::Config.delivery_time_options).values, {}
7
- </p>