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 +4 -4
- data/app/assets/stylesheets/admin/order_details.scss +10 -0
- data/app/assets/stylesheets/admin/spree_delivery_options.css +3 -0
- data/app/assets/stylesheets/store/delivery_checkout.scss +16 -1
- data/app/models/spree/order_decorator.rb +10 -0
- data/app/overrides/add_delivery_info_to_order_details.rb +5 -0
- data/app/views/spree/admin/orders/_delivery_info.haml +17 -0
- data/app/views/spree/checkout/_delivery_date.haml +14 -0
- data/db/migrate/20140109003355_add_delivery_instructions.rb +5 -0
- data/lib/generators/spree_delivery_options/install/install_generator.rb +1 -0
- data/spec/models/order_spec.rb +16 -0
- data/spree_delivery_options.gemspec +1 -1
- metadata +7 -2
- data/app/views/spree/checkout/_delivery_date.html.erb +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ffa0c34813e0e8d339119ca8a2fd0fd9452f7432
|
4
|
+
data.tar.gz: 797b69f00b0950d2846e4f0996190f74c7956a54
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4e16f085274d39bb8b177cf77ca0cc98a0f627f3420e7e505a8401c4f6938640c618067733a97fe22774a49f2cb2384a7c8ae3f44a20a71d8927caf77049d5e9
|
7
|
+
data.tar.gz: 0fdfeb40e6644e8af809fc5df803288240dfbf12a5c3b4b70e8f9fa5790597bc4451d6ea8ffdf1ebfecf2896a565a9e2eb10c87f14229d5ab715e50d0b8e5369
|
@@ -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,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
|
@@ -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
|
data/spec/models/order_spec.rb
CHANGED
@@ -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
|
|
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.
|
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.
|
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>
|