spree_core 2.0.6 → 2.0.7

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: 4b3832f1651011ef4d49aebec92add9c6fc8744d
4
- data.tar.gz: 0f9032e0a7134479874ddda954c590cee31486a8
3
+ metadata.gz: 3c0e00c7f8d48f1f8f6a553128e0f324baf1b80b
4
+ data.tar.gz: 13ad6252099846dd0af9cb82e417d804199ecfa5
5
5
  SHA512:
6
- metadata.gz: df88e26ab461edc8b6a6373a708386c359a051aec2e6a1715c26ef6b7318d90fec9be379abb911d2eb0171377076186210565fbd2408e8c6eb112a0eefb5c3f1
7
- data.tar.gz: d8e1e60bb608201d98d4fcf89344716d4bbdd17347135b3ccad3e8b524d44d22ac515cd3d23a78c1dc5f55262083c63aec0ead934f0202d737ebcf7c845fa651
6
+ metadata.gz: c87d7b7176aa8f6447eba1897834beb1889741ab3b2a8fe6d0090d25559a96d2f104447a89ced51264099b4ed43e8cc8a9504e8c986bcb868bec309a73d5c71b
7
+ data.tar.gz: 884eef22bc8e8e9b6caf813c24b453582089d2966aab9cc924c62fcda7c8fefe0608513b464ed761c157f46047ec3b208b44c1d6e4fa3570e2ffdccdfe204ac9
@@ -117,7 +117,7 @@ module Spree
117
117
  countries.collect do |country|
118
118
  country.name = Spree.t(country.iso, scope: 'country_names', default: country.name)
119
119
  country
120
- end.sort { |a, b| a.name <=> b.name }
120
+ end.sort { |a, b| a.name.parameterize <=> b.name.parameterize }
121
121
  end
122
122
 
123
123
  def seo_url(taxon)
@@ -82,23 +82,17 @@ module Spree
82
82
  # delegate updating of amount to their Originator when present, but only if
83
83
  # +locked+ is false. Adjustments that are +locked+ will never change their amount.
84
84
  #
85
- # Adjustments delegate updating of amount to their Originator when present,
86
- # but only if when they're in "open" state, closed or finalized adjustments
87
- # are not recalculated.
88
- #
89
- # It receives +calculable+ as the updated source here so calculations can be
90
- # performed on the current values of that source. If we used +source+ it
91
- # could load the old record from db for the association. e.g. when updating
92
- # more than on line items at once via accepted_nested_attributes the order
93
- # object on the association would be in a old state and therefore the
94
- # adjustment calculations would not performed on proper values
95
- def update!(calculable = nil)
85
+ # order#update_adjustments passes self as the src, this is so calculations can
86
+ # be performed on the # current values. If we used source it would load the old
87
+ # record from db for the association
88
+ def update!(calculable=nil)
96
89
  return if immutable?
97
90
  # Fix for #3381
98
91
  # If we attempt to call 'source' before the reload, then source is currently
99
92
  # the order object. After calling a reload, the source is the Shipment.
100
93
  reload
101
- originator.update_adjustment(self, calculable || source) if originator.present?
94
+ calculable = source unless calculable == source
95
+ originator.update_adjustment(self, calculable) if originator.present?
102
96
  set_eligibility
103
97
  end
104
98
 
@@ -42,6 +42,7 @@ module Spree
42
42
  preference :currency, :string, default: "USD"
43
43
  preference :currency_decimal_mark, :string, default: "."
44
44
  preference :currency_symbol_position, :string, default: "before"
45
+ preference :currency_sign_before_symbol, :boolean, default: true
45
46
  preference :currency_thousands_separator, :string, default: ","
46
47
  preference :display_currency, :boolean, default: false
47
48
  preference :default_country_id, :integer
@@ -7,7 +7,7 @@ module Spree
7
7
 
8
8
  attr_accessor :number, :verification_value
9
9
 
10
- validates :month, :year, numericality: { only_integer: true }
10
+ validates :month, :year, numericality: { only_integer: true }, unless: :has_payment_profile?
11
11
  validates :number, presence: true, unless: :has_payment_profile?, on: :create
12
12
  validates :verification_value, presence: true, unless: :has_payment_profile?, on: :create
13
13
  validate :expiry_not_in_the_past
@@ -94,7 +94,7 @@ module Spree
94
94
  end
95
95
 
96
96
  def has_payment_profile?
97
- gateway_customer_profile_id.present?
97
+ gateway_customer_profile_id.present? || gateway_payment_profile_id.present?
98
98
  end
99
99
 
100
100
  def spree_cc_type
@@ -6,6 +6,14 @@ module Spree
6
6
  false
7
7
  end
8
8
 
9
+ def capture(money, response_code, options = {})
10
+ if response_code == '12345'
11
+ ActiveMerchant::Billing::Response.new(true, 'Bogus Gateway: Forced success', {}, :test => true, :authorization => '67890')
12
+ else
13
+ ActiveMerchant::Billing::Response.new(false, 'Bogus Gateway: Forced failure', :error => 'Bogus Gateway: Forced failure', :test => true)
14
+ end
15
+ end
16
+
9
17
  def authorize(money, credit_card, options = {})
10
18
  if VALID_CCS.include? credit_card.number
11
19
  ActiveMerchant::Billing::Response.new(true, 'Bogus Gateway: Forced success', {}, :test => true, :authorization => '12345', :avs_result => { :code => 'A' })
@@ -2,6 +2,7 @@ module Spree
2
2
  class OptionType < ActiveRecord::Base
3
3
  has_many :option_values, order: :position, dependent: :destroy
4
4
  has_many :product_option_types, dependent: :destroy
5
+ has_many :products, through: :product_option_types
5
6
  has_and_belongs_to_many :prototypes, join_table: 'spree_option_types_prototypes'
6
7
 
7
8
  attr_accessible :name, :presentation, :option_values_attributes
@@ -65,10 +65,14 @@ module Spree
65
65
  end
66
66
 
67
67
  def add_to_shipment(shipment, variant, quantity)
68
- on_hand, back_order = shipment.stock_location.fill_status(variant, quantity)
68
+ if Config.track_inventory_levels
69
+ on_hand, back_order = shipment.stock_location.fill_status(variant, quantity)
69
70
 
70
- on_hand.times { shipment.set_up_inventory('on_hand', variant, order) }
71
- back_order.times { shipment.set_up_inventory('backordered', variant, order) }
71
+ on_hand.times { shipment.set_up_inventory('on_hand', variant, order) }
72
+ back_order.times { shipment.set_up_inventory('backordered', variant, order) }
73
+ else
74
+ quantity.times { shipment.set_up_inventory('on_hand', variant, order) }
75
+ end
72
76
 
73
77
  # adding to this shipment, and removing from stock_location
74
78
  if order.completed?
@@ -25,8 +25,7 @@ module Spree
25
25
  update_shipment_state
26
26
  end
27
27
 
28
- update_promotion_adjustments
29
- update_shipping_adjustments
28
+ update_adjustments
30
29
  # update totals a second time in case updated adjustments have an effect on the total
31
30
  update_totals
32
31
 
@@ -125,17 +124,11 @@ module Spree
125
124
  #
126
125
  # Adjustments will check if they are still eligible. Ineligible adjustments
127
126
  # are preserved but not counted towards adjustment_total.
128
- def update_promotion_adjustments
129
- order.adjustments.reload.promotion.each { |adjustment| adjustment.update!(order) }
127
+ def update_adjustments
128
+ order.adjustments.reload.each { |adjustment| adjustment.update!(order) }
130
129
  choose_best_promotion_adjustment
131
130
  end
132
131
 
133
- # Shipping adjustments don't receive order on update! because they calculated
134
- # over a shipping / package object rather than an order object
135
- def update_shipping_adjustments
136
- order.adjustments.reload.shipping.each { |adjustment| adjustment.update! }
137
- end
138
-
139
132
  private
140
133
 
141
134
  # Picks one (and only one) promotion to be eligible for this order
@@ -13,7 +13,7 @@ module Spree
13
13
  end
14
14
  else
15
15
  invalidate!
16
- raise Core::GatewayError.new(I18n.t(:payment_method_not_supported))
16
+ raise Core::GatewayError.new(Spree.t(:payment_method_not_supported))
17
17
  end
18
18
  end
19
19
  else
@@ -83,11 +83,12 @@ module Spree
83
83
 
84
84
  credit_amount ||= credit_allowed >= order.outstanding_balance.abs ? order.outstanding_balance.abs : credit_allowed.abs
85
85
  credit_amount = credit_amount.to_f
86
+ credit_cents = Spree::Money.new(credit_amount, currency: currency).money.cents
86
87
 
87
88
  if payment_method.payment_profiles_supported?
88
- response = payment_method.credit((credit_amount * 100).round, source, response_code, gateway_options)
89
+ response = payment_method.credit(credit_cents, source, response_code, gateway_options)
89
90
  else
90
- response = payment_method.credit((credit_amount * 100).round, response_code, gateway_options)
91
+ response = payment_method.credit(credit_cents, response_code, gateway_options)
91
92
  end
92
93
 
93
94
  record_response(response)
@@ -139,7 +140,7 @@ module Spree
139
140
  protect_from_connection_error do
140
141
  check_environment
141
142
 
142
- response = payment_method.send(action, (amount * 100).round,
143
+ response = payment_method.send(action, money.money.cents,
143
144
  source,
144
145
  gateway_options)
145
146
  handle_response(response, success_state, :failure)
@@ -202,8 +202,13 @@ module Spree
202
202
 
203
203
  def set_property(property_name, property_value)
204
204
  ActiveRecord::Base.transaction do
205
- property = Property.where(name: property_name).first_or_create!(presentation: property_name)
206
- product_property = ProductProperty.where(product_id: id, property_id: property.id).first_or_initialize
205
+ # Works around spree_i18n #301
206
+ property = if Property.exists?(name: property_name)
207
+ Property.where(name: property_name).first
208
+ else
209
+ Property.create(name: property_name, presentation: property_name)
210
+ end
211
+ product_property = ProductProperty.where(product_id: self.id, property_id: property.id).first_or_initialize
207
212
  product_property.value = property_value
208
213
  product_property.save!
209
214
  end
@@ -9,7 +9,7 @@ module Spree
9
9
  has_and_belongs_to_many :users, class_name: Spree.user_class.to_s, join_table: 'spree_promotion_rules_users', foreign_key: 'promotion_rule_id'
10
10
  else
11
11
  belongs_to :user
12
- has_and_belongs_to_many :users, join_table: 'spree_promotion_rules_users', foreign_key: 'promotion_rule_id'
12
+ has_and_belongs_to_many :users, join_table: 'spree_promotion_rules_users', foreign_key: 'promotion_rule_id', :class_name => Spree.user_class
13
13
  end
14
14
 
15
15
  def eligible?(order, options = {})
@@ -66,9 +66,7 @@ module Spree
66
66
  end
67
67
 
68
68
  def to_param
69
- number if number
70
- generate_shipment_number unless number
71
- number.to_s.to_url.upcase
69
+ number
72
70
  end
73
71
 
74
72
  def backordered?
@@ -104,6 +102,7 @@ module Spree
104
102
 
105
103
  def refresh_rates
106
104
  return shipping_rates if shipped?
105
+ return [] unless can_get_rates?
107
106
 
108
107
  # StockEstimator.new assigment below will replace the current shipping_method
109
108
  original_shipping_method_id = shipping_method.try(:id)
@@ -294,5 +293,9 @@ module Spree
294
293
  def update_order
295
294
  order.update!
296
295
  end
296
+
297
+ def can_get_rates?
298
+ order.ship_address && order.ship_address.valid?
299
+ end
297
300
  end
298
301
  end
@@ -8,8 +8,8 @@ module Spree
8
8
 
9
9
  before_create :set_permalink
10
10
 
11
- attr_accessible :name, :parent_id, :position, :icon, :description, :permalink, :taxonomy_id,
12
- :meta_description, :meta_keywords, :meta_title
11
+ attr_accessible :name, :parent_id, :icon, :description, :permalink, :taxonomy_id,
12
+ :meta_description, :meta_keywords, :meta_title, :child_index
13
13
 
14
14
  validates :name, presence: true
15
15
 
@@ -72,5 +72,14 @@ module Spree
72
72
  ancestor_chain + "#{name}"
73
73
  end
74
74
 
75
+ # awesome_nested_set sorts by :lft and :rgt. This call re-inserts the child
76
+ # node so that its resulting position matches the observable 0-indexed position.
77
+ # ** Note ** no :position column needed - a_n_s doesn't handle the reordering if
78
+ # you bring your own :order_column.
79
+ #
80
+ # See #3390 for background.
81
+ def child_index=(idx)
82
+ move_to_child_with_index(parent, idx.to_i)
83
+ end
75
84
  end
76
85
  end
@@ -4,7 +4,9 @@
4
4
  <% unless (cc_type = source.cc_type).blank? %>
5
5
  <%= image_tag "credit_cards/icons/#{cc_type}.png" %>
6
6
  <% end %>
7
- <%= Spree.t(:ending_in) %> <%= source.last_digits %>
7
+ <% if source.last_digits %>
8
+ <%= Spree.t(:ending_in) %> <%= source.last_digits %>
9
+ <% end %>
8
10
  </span>
9
11
  <br />
10
12
  <span class="full-name">
@@ -790,6 +790,7 @@ en:
790
790
  payment_method: Payment Method
791
791
  payment_methods: Payment Methods
792
792
  payment_processing_failed: Payment could not be processed, please check the details you entered
793
+ payment_method_not_supported: That payment method is unsupported. Please choose another one.
793
794
  payment_processor_choose_banner_text: If you need help choosing a payment processor, please visit
794
795
  payment_processor_choose_link: our payments page
795
796
  payment_state: Payment State
@@ -0,0 +1,5 @@
1
+ class AddChannelToSpreeOrders < ActiveRecord::Migration
2
+ def change
3
+ add_column :spree_orders, :channel, :string, default: "spree"
4
+ end
5
+ end
@@ -1,5 +1,5 @@
1
1
  module Spree
2
2
  def self.version
3
- "2.0.6"
3
+ "2.0.7"
4
4
  end
5
5
  end
data/lib/spree/core.rb CHANGED
@@ -16,9 +16,9 @@ module Spree
16
16
 
17
17
  def self.user_class
18
18
  if @@user_class.is_a?(Class)
19
- raise "Spree.user_class MUST be a String object, not a Class object."
20
- elsif @@user_class.is_a?(String)
21
- @@user_class.constantize
19
+ raise "Spree.user_class MUST be a String or Symbol object, not a Class object."
20
+ elsif @@user_class.is_a?(String) || @@user_class.is_a?(Symbol)
21
+ @@user_class.to_s.constantize
22
22
  end
23
23
  end
24
24
 
@@ -54,3 +54,30 @@ require 'spree/core/product_duplicator'
54
54
  ActiveRecord::Base.class_eval do
55
55
  include CollectiveIdea::Acts::NestedSet
56
56
  end
57
+
58
+ # Monkey patch to give us miliseconds precision in timestamps
59
+ module ActiveSupport
60
+ class TimeWithZone
61
+ # Coerces time to a string for JSON encoding. The default format is ISO 8601. You can get
62
+ # %Y/%m/%d %H:%M:%S +offset style by setting <tt>ActiveSupport::JSON::Encoding.use_standard_json_time_format</tt>
63
+ # to false.
64
+ #
65
+ # ==== Examples
66
+ #
67
+ # # With ActiveSupport::JSON::Encoding.use_standard_json_time_format = true
68
+ # Time.utc(2005,2,1,15,15,10).in_time_zone.to_json
69
+ # # => "2005-02-01T15:15:10.001Z"
70
+ #
71
+ # # With ActiveSupport::JSON::Encoding.use_standard_json_time_format = false
72
+ # Time.utc(2005,2,1,15,15,10).in_time_zone.to_json
73
+ # # => "2005/02/01 15:15:10 +0000"
74
+ #
75
+ def as_json(options = nil)
76
+ if ActiveSupport::JSON::Encoding.use_standard_json_time_format
77
+ xmlschema(3)
78
+ else
79
+ %(#{time.strftime("%Y/%m/%d %H:%M:%S")} #{formatted_offset(false)})
80
+ end
81
+ end
82
+ end
83
+ end
data/lib/spree/money.rb CHANGED
@@ -14,6 +14,7 @@ module Spree
14
14
  @options[:no_cents] = Spree::Config[:hide_cents]
15
15
  @options[:decimal_mark] = Spree::Config[:currency_decimal_mark]
16
16
  @options[:thousands_separator] = Spree::Config[:currency_thousands_separator]
17
+ @options[:sign_before_symbol] = Spree::Config[:currency_sign_before_symbol]
17
18
  @options.merge!(options)
18
19
  # Must be a symbol because the Money gem doesn't do the conversion
19
20
  @options[:symbol_position] = @options[:symbol_position].to_sym
@@ -13,11 +13,19 @@ module CapybaraExt
13
13
  end
14
14
 
15
15
  def within_row(num, &block)
16
- within("table.index tbody tr:nth-child(#{num})", &block)
16
+ if example.metadata[:js]
17
+ within("table.index tbody tr:nth-child(#{num})", &block)
18
+ else
19
+ within(:xpath, all("table.index tbody tr")[num-1].path, &block)
20
+ end
17
21
  end
18
22
 
19
23
  def column_text(num)
20
- find("td:nth-child(#{num})").text
24
+ if example.metadata[:js]
25
+ find("td:nth-child(#{num})").text
26
+ else
27
+ all("td")[num-1].text
28
+ end
21
29
  end
22
30
 
23
31
  def set_select2_field(field, value)
@@ -94,7 +102,7 @@ module CapybaraExt
94
102
 
95
103
  def wait_for_ajax
96
104
  counter = 0
97
- while page.execute_script("return $.active").to_i > 0
105
+ while page.evaluate_script("$.active").to_i > 0
98
106
  counter += 1
99
107
  sleep(0.1)
100
108
  raise "AJAX request took longer than 5 seconds." if counter >= 50
@@ -4,9 +4,9 @@
4
4
  # Inside your spec_helper.rb, include this module inside the RSpec.configure
5
5
  # block by doing this:
6
6
  #
7
- # require 'spree/core/testing_support/controller_requests'
7
+ # require 'spree/testing_support/controller_requests'
8
8
  # RSpec.configure do |c|
9
- # c.include Spree::Core::TestingSupport::ControllerRequests, :type => :controller
9
+ # c.include Spree::TestingSupport::ControllerRequests, :type => :controller
10
10
  # end
11
11
  #
12
12
  # Then, in your controller tests, you can access spree routes like this:
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.6
4
+ version: 2.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Schofield
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-15 00:00:00.000000000 Z
11
+ date: 2013-11-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemerchant
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 1.39.2
19
+ version: 1.42.2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 1.39.2
26
+ version: 1.42.2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: acts_as_list
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -44,28 +44,28 @@ dependencies:
44
44
  requirements:
45
45
  - - '='
46
46
  - !ruby/object:Gem::Version
47
- version: 2.1.5
47
+ version: 2.1.6
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - '='
53
53
  - !ruby/object:Gem::Version
54
- version: 2.1.5
54
+ version: 2.1.6
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: aws-sdk
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - '='
60
60
  - !ruby/object:Gem::Version
61
- version: 1.14.1
61
+ version: 1.27.0
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - '='
67
67
  - !ruby/object:Gem::Version
68
- version: 1.14.1
68
+ version: 1.27.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: cancan
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -84,16 +84,16 @@ dependencies:
84
84
  name: deface
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - '='
88
88
  - !ruby/object:Gem::Version
89
- version: 0.9.1
89
+ version: 1.0.0
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - '='
95
95
  - !ruby/object:Gem::Version
96
- version: 0.9.1
96
+ version: 1.0.0
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: ffaker
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -112,14 +112,14 @@ dependencies:
112
112
  name: highline
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - '='
115
+ - - ~>
116
116
  - !ruby/object:Gem::Version
117
117
  version: 1.6.18
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - '='
122
+ - - ~>
123
123
  - !ruby/object:Gem::Version
124
124
  version: 1.6.18
125
125
  - !ruby/object:Gem::Dependency
@@ -140,16 +140,16 @@ dependencies:
140
140
  name: json
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - '>='
143
+ - - ~>
144
144
  - !ruby/object:Gem::Version
145
- version: 1.7.7
145
+ version: '1.7'
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - '>='
150
+ - - ~>
151
151
  - !ruby/object:Gem::Version
152
- version: 1.7.7
152
+ version: '1.7'
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: kaminari
155
155
  requirement: !ruby/object:Gem::Requirement
@@ -168,14 +168,14 @@ dependencies:
168
168
  name: money
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
- - - '>='
171
+ - - ~>
172
172
  - !ruby/object:Gem::Version
173
173
  version: 5.1.1
174
174
  type: :runtime
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
- - - '>='
178
+ - - ~>
179
179
  - !ruby/object:Gem::Version
180
180
  version: 5.1.1
181
181
  - !ruby/object:Gem::Dependency
@@ -226,14 +226,14 @@ dependencies:
226
226
  requirements:
227
227
  - - ~>
228
228
  - !ruby/object:Gem::Version
229
- version: 1.0.0
229
+ version: 1.1.0
230
230
  type: :runtime
231
231
  prerelease: false
232
232
  version_requirements: !ruby/object:Gem::Requirement
233
233
  requirements:
234
234
  - - ~>
235
235
  - !ruby/object:Gem::Version
236
- version: 1.0.0
236
+ version: 1.1.0
237
237
  - !ruby/object:Gem::Dependency
238
238
  name: state_machine
239
239
  requirement: !ruby/object:Gem::Requirement
@@ -619,6 +619,7 @@ files:
619
619
  - db/migrate/20130909115621_change_states_required_for_countries.rb
620
620
  - db/migrate/20130915032339_add_deleted_at_to_spree_stock_items.rb
621
621
  - db/migrate/20131001013410_remove_unused_credit_card_fields.rb
622
+ - db/migrate/20131113035136_add_channel_to_spree_orders.rb
622
623
  - db/seeds.rb
623
624
  - vendor/assets/javascripts/jquery-migrate-1.0.0.js
624
625
  - vendor/assets/javascripts/jquery.validate/localization/messages_et.js