spree_delivery_options 2.1.3 → 2.1.4

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: 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>