spree_core 4.6.6 → 4.7.0
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 +4 -4
- data/app/finders/spree/countries/find.rb +1 -1
- data/app/finders/spree/products/find.rb +1 -1
- data/app/finders/spree/taxons/find.rb +3 -9
- data/app/helpers/spree/base_helper.rb +1 -5
- data/app/helpers/spree/products_helper.rb +3 -3
- data/app/models/concerns/spree/metadata.rb +7 -2
- data/app/models/concerns/spree/translatable_resource.rb +1 -1
- data/app/models/concerns/spree/user_roles.rb +3 -3
- data/app/models/spree/address.rb +6 -4
- data/app/models/spree/asset.rb +1 -1
- data/app/models/spree/base.rb +5 -1
- data/app/models/spree/calculator/default_tax.rb +1 -1
- data/app/models/spree/cms/sections/image_gallery.rb +1 -7
- data/app/models/spree/cms/sections/side_by_side_images.rb +1 -7
- data/app/models/spree/cms_page.rb +1 -1
- data/app/models/spree/cms_section.rb +1 -1
- data/app/models/spree/country.rb +2 -2
- data/app/models/spree/credit_card.rb +1 -1
- data/app/models/spree/customer_return.rb +2 -2
- data/app/models/spree/digital_link.rb +5 -1
- data/app/models/spree/line_item.rb +1 -1
- data/app/models/spree/option_type.rb +3 -3
- data/app/models/spree/option_value.rb +2 -2
- data/app/models/spree/order/store_credit.rb +0 -8
- data/app/models/spree/order.rb +7 -7
- data/app/models/spree/payment.rb +7 -15
- data/app/models/spree/payment_method.rb +1 -1
- data/app/models/spree/payment_source.rb +1 -1
- data/app/models/spree/preference.rb +5 -1
- data/app/models/spree/price.rb +1 -1
- data/app/models/spree/product.rb +9 -18
- data/app/models/spree/product_property.rb +1 -1
- data/app/models/spree/promotion.rb +2 -2
- data/app/models/spree/property.rb +2 -2
- data/app/models/spree/prototype.rb +1 -1
- data/app/models/spree/refund.rb +1 -1
- data/app/models/spree/reimbursement.rb +1 -1
- data/app/models/spree/return_authorization.rb +1 -1
- data/app/models/spree/return_item.rb +5 -1
- data/app/models/spree/shipment.rb +3 -3
- data/app/models/spree/shipping_method.rb +1 -1
- data/app/models/spree/stock/estimator.rb +1 -1
- data/app/models/spree/stock/splitter/weight.rb +1 -1
- data/app/models/spree/stock_item.rb +1 -1
- data/app/models/spree/stock_transfer.rb +3 -3
- data/app/models/spree/store.rb +2 -2
- data/app/models/spree/store_credit.rb +1 -1
- data/app/models/spree/taxon.rb +3 -3
- data/app/models/spree/taxonomy.rb +2 -2
- data/app/models/spree/variant.rb +2 -2
- data/app/models/spree/wishlist.rb +5 -1
- data/app/models/spree/zone.rb +1 -1
- data/app/services/spree/seeds/countries.rb +12 -27
- data/app/services/spree/seeds/states.rb +8 -17
- data/app/services/spree/stock_locations/stock_items/create.rb +12 -18
- data/app/validators/db_maximum_length_validator.rb +2 -6
- data/config/initializers/rails61_fixes.rb +1 -3
- data/config/locales/en.yml +6 -0
- data/lib/spree/core/configuration.rb +1 -1
- data/lib/spree/core/controller_helpers/auth.rb +1 -1
- data/lib/spree/core/controller_helpers/common.rb +5 -5
- data/lib/spree/core/engine.rb +1 -0
- data/lib/spree/core/preferences/preferable_class_methods.rb +1 -1
- data/lib/spree/core/version.rb +1 -1
- data/lib/spree/testing_support/controller_requests.rb +10 -10
- data/spree_core.gemspec +3 -3
- metadata +24 -31
- data/app/models/spree/order_contents.rb +0 -31
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b694ef25dfdd98db89c6c36a42cc50de19b6dab09cc827c5273e57dc066f38d6
|
|
4
|
+
data.tar.gz: '09ecb007e8e2181ace749a1b6776c8fe62eafdb07f321238d5fd69670f209206'
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3620378de0b17967f36b2d0a4c72e302aa25dae3f700aaf09e2d9b9cec73bf4b924a81a273beb9da245571c1c48128e5ad53c26539a7f8de04b0c38cdbb31d20
|
|
7
|
+
data.tar.gz: f902de746ff1dfbeef5f778f6cc204db4c47477fd76c8a0eeea60874fa45a188be8cf33ca1462240f636f57394cf790f71ce6dbdd2ac48bf756aa4e3379b059f
|
|
@@ -8,7 +8,7 @@ module Spree
|
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
def call
|
|
11
|
-
|
|
11
|
+
Spree::Deprecation.warn(<<-DEPRECATION, caller)
|
|
12
12
|
Spree::Countries::Find.new.call is deprecated and will be removed in Spree 5.0.
|
|
13
13
|
Please use Spree::Countries::Find.new.execute instead
|
|
14
14
|
DEPRECATION
|
|
@@ -5,7 +5,7 @@ module Spree
|
|
|
5
5
|
@scope = scope
|
|
6
6
|
|
|
7
7
|
if current_currency.present?
|
|
8
|
-
|
|
8
|
+
Spree::Deprecation.warn(<<-DEPRECATION, caller)
|
|
9
9
|
`current_currency` param is deprecated and will be removed in Spree 5.
|
|
10
10
|
Please pass `:currency` in `params` hash instead.
|
|
11
11
|
DEPRECATION
|
|
@@ -65,15 +65,9 @@ module Spree
|
|
|
65
65
|
def by_parent_permalink(taxons)
|
|
66
66
|
return taxons unless parent_permalink?
|
|
67
67
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
where(["#{Taxon.translation_table_alias}.permalink = ?", parent_permalink])
|
|
72
|
-
else
|
|
73
|
-
taxons.joins("INNER JOIN #{Spree::Taxon.table_name} AS parent_taxon ON parent_taxon.id = #{Spree::Taxon.table_name}.parent_id").
|
|
74
|
-
join_translation_table(Taxon, 'parent_taxon').
|
|
75
|
-
where(["#{Taxon.translation_table_alias}.permalink = ?", parent_permalink])
|
|
76
|
-
end
|
|
68
|
+
taxons.joins(:parent).
|
|
69
|
+
join_translation_table(Taxon, 'parents_spree_taxons').
|
|
70
|
+
where(["#{Taxon.translation_table_alias}.permalink = ?", parent_permalink])
|
|
77
71
|
end
|
|
78
72
|
|
|
79
73
|
def by_taxonomy(taxons)
|
|
@@ -55,7 +55,7 @@ module Spree
|
|
|
55
55
|
end
|
|
56
56
|
|
|
57
57
|
def logo(image_path = nil, options = {})
|
|
58
|
-
|
|
58
|
+
Spree::Deprecation.warn(<<-DEPRECATION, caller)
|
|
59
59
|
`BaseHelper#logo` is deprecated and will be removed in Spree 5.0.
|
|
60
60
|
Please use `FrontendHelper#logo` instead
|
|
61
61
|
DEPRECATION
|
|
@@ -174,10 +174,6 @@ module Spree
|
|
|
174
174
|
Spree::Core::Engine.frontend_available?
|
|
175
175
|
end
|
|
176
176
|
|
|
177
|
-
def rails_5?
|
|
178
|
-
Rails::VERSION::STRING < '6.0'
|
|
179
|
-
end
|
|
180
|
-
|
|
181
177
|
def spree_storefront_resource_url(resource, options = {})
|
|
182
178
|
if defined?(locale_param) && locale_param.present?
|
|
183
179
|
options.merge!(locale: locale_param)
|
|
@@ -53,7 +53,7 @@ module Spree
|
|
|
53
53
|
end
|
|
54
54
|
|
|
55
55
|
def cache_key_for_products(products = @products, additional_cache_key = nil)
|
|
56
|
-
max_updated_at = (products.except(:group, :order).maximum(:updated_at) || Date.today).
|
|
56
|
+
max_updated_at = (products.except(:group, :order).maximum(:updated_at) || Date.today).to_formatted_s(:number)
|
|
57
57
|
products_cache_keys = "spree/products/#{products.map(&:id).join('-')}-#{params[:page]}-#{params[:sort_by]}-#{max_updated_at}-#{@taxon&.id}"
|
|
58
58
|
(common_product_cache_keys + [products_cache_keys] + [additional_cache_key]).compact.join('/')
|
|
59
59
|
end
|
|
@@ -76,7 +76,7 @@ module Spree
|
|
|
76
76
|
|
|
77
77
|
# will return a human readable string
|
|
78
78
|
def available_status(product)
|
|
79
|
-
|
|
79
|
+
Spree::Deprecation.warn(<<-DEPRECATION, caller)
|
|
80
80
|
`Spree::ProductsHelper#available_status` method from spree/core is deprecated and will be removed.
|
|
81
81
|
Please use `Spree::Admin::ProductsHelper#available_status` from spree_backend instead.
|
|
82
82
|
DEPRECATION
|
|
@@ -140,7 +140,7 @@ module Spree
|
|
|
140
140
|
end
|
|
141
141
|
|
|
142
142
|
def related_products
|
|
143
|
-
|
|
143
|
+
Spree::Deprecation.warn(<<-DEPRECATION, caller)
|
|
144
144
|
ProductsHelper#related_products is deprecated and will be removed in Spree 5.0.
|
|
145
145
|
Please use ProductsHelper#relations from now on.
|
|
146
146
|
DEPRECATION
|
|
@@ -5,8 +5,13 @@ module Spree
|
|
|
5
5
|
included do
|
|
6
6
|
attribute :public_metadata, default: {}
|
|
7
7
|
attribute :private_metadata, default: {}
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
if Rails::VERSION::STRING >= '7.1.0'
|
|
9
|
+
serialize :public_metadata, coder: HashSerializer
|
|
10
|
+
serialize :private_metadata, coder: HashSerializer
|
|
11
|
+
else
|
|
12
|
+
serialize :public_metadata, HashSerializer
|
|
13
|
+
serialize :private_metadata, HashSerializer
|
|
14
|
+
end
|
|
10
15
|
end
|
|
11
16
|
|
|
12
17
|
# https://nandovieira.com/using-postgresql-and-jsonb-with-ruby-on-rails
|
|
@@ -14,19 +14,19 @@ module Spree
|
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
def self.admin
|
|
17
|
-
|
|
17
|
+
Spree::Deprecation.warn('`User#admin` is deprecated and will be removed in Spree 5. Please use `User#spree_admin`')
|
|
18
18
|
|
|
19
19
|
spree_admin
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
def self.admin_created?
|
|
23
|
-
|
|
23
|
+
Spree::Deprecation.warn('`User#admin_created?` is deprecated and will be removed in Spree 5. Please use `User#spree_admin_created?`')
|
|
24
24
|
|
|
25
25
|
spree_admin_created?
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
def admin?
|
|
29
|
-
|
|
29
|
+
Spree::Deprecation.warn('`User#admin?` is deprecated and will be removed in Spree 5. Please use `User#spree_admin?`')
|
|
30
30
|
|
|
31
31
|
spree_admin?
|
|
32
32
|
end
|
data/app/models/spree/address.rb
CHANGED
|
@@ -2,7 +2,7 @@ module Spree
|
|
|
2
2
|
class Address < Spree::Base
|
|
3
3
|
require 'validates_zipcode'
|
|
4
4
|
|
|
5
|
-
include
|
|
5
|
+
include Metadata
|
|
6
6
|
if defined?(Spree::Webhooks)
|
|
7
7
|
include Spree::Webhooks::HasWebhooks
|
|
8
8
|
end
|
|
@@ -10,7 +10,9 @@ module Spree
|
|
|
10
10
|
include Spree::Security::Addresses
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
if Rails::VERSION::STRING >= '
|
|
13
|
+
if Rails::VERSION::STRING >= '7.1.0'
|
|
14
|
+
serialize :preferences, type: Hash, coder: YAML, default: {}
|
|
15
|
+
else
|
|
14
16
|
serialize :preferences, Hash, default: {}
|
|
15
17
|
end
|
|
16
18
|
|
|
@@ -67,7 +69,7 @@ module Spree
|
|
|
67
69
|
self.whitelisted_ransackable_associations = %w[country state user]
|
|
68
70
|
|
|
69
71
|
def self.build_default
|
|
70
|
-
|
|
72
|
+
Spree::Deprecation.warn(<<-DEPRECATION, caller)
|
|
71
73
|
`Address#build_default` is deprecated and will be removed in Spree 5.0.
|
|
72
74
|
Please use standard rails `Address.new(country: current_store.default_country)`
|
|
73
75
|
DEPRECATION
|
|
@@ -75,7 +77,7 @@ module Spree
|
|
|
75
77
|
end
|
|
76
78
|
|
|
77
79
|
def self.default(user = nil, kind = 'bill')
|
|
78
|
-
|
|
80
|
+
Spree::Deprecation.warn(<<-DEPRECATION, caller)
|
|
79
81
|
`Address#default` is deprecated and will be removed in Spree 5.0.
|
|
80
82
|
DEPRECATION
|
|
81
83
|
if user && user_address = user.public_send(:"#{kind}_address")
|
data/app/models/spree/asset.rb
CHANGED
data/app/models/spree/base.rb
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
class Spree::Base < ApplicationRecord
|
|
2
2
|
include Spree::Preferences::Preferable
|
|
3
|
-
|
|
3
|
+
if Rails::VERSION::STRING >= '7.1.0'
|
|
4
|
+
serialize :preferences, type: Hash, coder: YAML
|
|
5
|
+
else
|
|
6
|
+
serialize :preferences, Hash
|
|
7
|
+
end
|
|
4
8
|
|
|
5
9
|
include Spree::RansackableAttributes
|
|
6
10
|
include Spree::TranslatableResourceScopes
|
|
@@ -3,11 +3,7 @@ module Spree::Cms::Sections
|
|
|
3
3
|
after_initialize :default_values
|
|
4
4
|
validate :reset_multiple_link_attributes
|
|
5
5
|
|
|
6
|
-
LINKED_RESOURCE_TYPE =
|
|
7
|
-
['Spree::Taxon'].freeze
|
|
8
|
-
else
|
|
9
|
-
['Spree::Taxon', 'Spree::Product'].freeze
|
|
10
|
-
end
|
|
6
|
+
LINKED_RESOURCE_TYPE = ['Spree::Taxon', 'Spree::Product'].freeze
|
|
11
7
|
|
|
12
8
|
LAYOUT_OPTIONS = ['Default', 'Reversed'].freeze
|
|
13
9
|
LABEL_OPTIONS = ['Show', 'Hide'].freeze
|
|
@@ -71,8 +67,6 @@ module Spree::Cms::Sections
|
|
|
71
67
|
private
|
|
72
68
|
|
|
73
69
|
def reset_multiple_link_attributes
|
|
74
|
-
return if Rails::VERSION::STRING < '6.0'
|
|
75
|
-
|
|
76
70
|
if link_type_one_changed?
|
|
77
71
|
return if link_type_one_was.nil?
|
|
78
72
|
|
|
@@ -3,11 +3,7 @@ module Spree::Cms::Sections
|
|
|
3
3
|
after_initialize :default_values
|
|
4
4
|
validate :reset_multiple_link_attributes
|
|
5
5
|
|
|
6
|
-
LINKED_RESOURCE_TYPE =
|
|
7
|
-
['Spree::Taxon'].freeze
|
|
8
|
-
else
|
|
9
|
-
['Spree::Taxon', 'Spree::Product'].freeze
|
|
10
|
-
end
|
|
6
|
+
LINKED_RESOURCE_TYPE = ['Spree::Taxon', 'Spree::Product'].freeze
|
|
11
7
|
|
|
12
8
|
store :content, accessors: [:link_type_one, :link_one, :title_one, :subtitle_one,
|
|
13
9
|
:link_type_two, :link_two, :title_two, :subtitle_two], coder: JSON
|
|
@@ -49,8 +45,6 @@ module Spree::Cms::Sections
|
|
|
49
45
|
private
|
|
50
46
|
|
|
51
47
|
def reset_multiple_link_attributes
|
|
52
|
-
return if Rails::VERSION::STRING < '6.0'
|
|
53
|
-
|
|
54
48
|
if link_type_one_changed?
|
|
55
49
|
return if link_type_one_was.nil?
|
|
56
50
|
|
data/app/models/spree/country.rb
CHANGED
|
@@ -19,7 +19,7 @@ module Spree
|
|
|
19
19
|
validates :name, :iso_name, :iso, :iso3, presence: true, uniqueness: { case_sensitive: false, scope: spree_base_uniqueness_scope }
|
|
20
20
|
|
|
21
21
|
def self.default(store = nil)
|
|
22
|
-
|
|
22
|
+
Spree::Deprecation.warn(<<-DEPRECATION, caller)
|
|
23
23
|
`Country#default` is deprecated and will be removed in Spree 5.0.
|
|
24
24
|
Please use `current_store.default_country` instead
|
|
25
25
|
DEPRECATION
|
|
@@ -49,7 +49,7 @@ module Spree
|
|
|
49
49
|
private
|
|
50
50
|
|
|
51
51
|
def ensure_not_default
|
|
52
|
-
|
|
52
|
+
Spree::Deprecation.warn('Country#ensure_not_default is deprecated and will be removed in Spree v5')
|
|
53
53
|
|
|
54
54
|
if id.eql?(Spree::Config[:default_country_id])
|
|
55
55
|
errors.add(:base, Spree.t(:default_country_cannot_be_deleted))
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
module Spree
|
|
2
2
|
class CustomerReturn < Spree::Base
|
|
3
3
|
include Spree::Core::NumberGenerator.new(prefix: 'CR', length: 9)
|
|
4
|
-
include
|
|
5
|
-
include
|
|
4
|
+
include NumberIdentifier
|
|
5
|
+
include Metadata
|
|
6
6
|
if defined?(Spree::Webhooks)
|
|
7
7
|
include Spree::Webhooks::HasWebhooks
|
|
8
8
|
end
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
module Spree
|
|
2
2
|
class OptionType < Spree::Base
|
|
3
|
-
include
|
|
4
|
-
include
|
|
5
|
-
include
|
|
3
|
+
include UniqueName
|
|
4
|
+
include Metadata
|
|
5
|
+
include TranslatableResource
|
|
6
6
|
if defined?(Spree::Webhooks)
|
|
7
7
|
include Spree::Webhooks::HasWebhooks
|
|
8
8
|
end
|
|
@@ -1,14 +1,6 @@
|
|
|
1
1
|
module Spree
|
|
2
2
|
class Order < Spree::Base
|
|
3
3
|
module StoreCredit
|
|
4
|
-
def add_store_credit_payments(amount = nil)
|
|
5
|
-
Spree::Dependencies.checkout_add_store_credit_service.constantize.call(order: self, amount: amount)
|
|
6
|
-
end
|
|
7
|
-
|
|
8
|
-
def remove_store_credit_payments
|
|
9
|
-
Spree::Dependencies.checkout_remove_store_credit_service.constantize.call(order: self)
|
|
10
|
-
end
|
|
11
|
-
|
|
12
4
|
def covered_by_store_credit?
|
|
13
5
|
return false unless user
|
|
14
6
|
|
data/app/models/spree/order.rb
CHANGED
|
@@ -20,10 +20,10 @@ module Spree
|
|
|
20
20
|
include Spree::Core::NumberGenerator.new(prefix: 'R')
|
|
21
21
|
include Spree::Core::TokenGenerator
|
|
22
22
|
|
|
23
|
-
include
|
|
24
|
-
include
|
|
23
|
+
include NumberIdentifier
|
|
24
|
+
include NumberAsParam
|
|
25
25
|
include SingleStoreResource
|
|
26
|
-
include
|
|
26
|
+
include MemoizedData
|
|
27
27
|
include Spree::Metadata
|
|
28
28
|
if defined?(Spree::Webhooks)
|
|
29
29
|
include Spree::Webhooks::HasWebhooks
|
|
@@ -415,7 +415,7 @@ module Spree
|
|
|
415
415
|
|
|
416
416
|
def available_payment_methods(store = nil)
|
|
417
417
|
if store.present?
|
|
418
|
-
|
|
418
|
+
Spree::Deprecation.warn('The `store` parameter is deprecated and will be removed in Spree 5. Order is already associated with Store')
|
|
419
419
|
end
|
|
420
420
|
|
|
421
421
|
@available_payment_methods ||= collect_payment_methods(store)
|
|
@@ -449,7 +449,7 @@ module Spree
|
|
|
449
449
|
end
|
|
450
450
|
|
|
451
451
|
def empty!
|
|
452
|
-
|
|
452
|
+
Spree::Deprecation.warn(<<-DEPRECATION, caller)
|
|
453
453
|
`Order#empty!` is deprecated and will be removed in Spree 5.0.
|
|
454
454
|
Please use `Spree::Cart::Empty.call(order: order)` instead.
|
|
455
455
|
DEPRECATION
|
|
@@ -647,7 +647,7 @@ module Spree
|
|
|
647
647
|
end
|
|
648
648
|
|
|
649
649
|
def validate_payments_attributes(attributes)
|
|
650
|
-
|
|
650
|
+
Spree::Deprecation.warn('`Order#validate_payments_attributes` is deprecated and will be removed in Spree 5')
|
|
651
651
|
|
|
652
652
|
# Ensure the payment methods specified are allowed for this user
|
|
653
653
|
payment_method_ids = available_payment_methods.map(&:id).map(&:to_s)
|
|
@@ -745,7 +745,7 @@ module Spree
|
|
|
745
745
|
|
|
746
746
|
def collect_payment_methods(store = nil)
|
|
747
747
|
if store.present?
|
|
748
|
-
|
|
748
|
+
Spree::Deprecation.warn('The `store` parameter is deprecated and will be removed in Spree 5. Order is already associated with Store')
|
|
749
749
|
end
|
|
750
750
|
store ||= self.store
|
|
751
751
|
|
data/app/models/spree/payment.rb
CHANGED
|
@@ -3,9 +3,9 @@ require_dependency 'spree/payment/processing'
|
|
|
3
3
|
module Spree
|
|
4
4
|
class Payment < Spree::Base
|
|
5
5
|
include Spree::Core::NumberGenerator.new(prefix: 'P', letters: true, length: 7)
|
|
6
|
-
include
|
|
7
|
-
include
|
|
8
|
-
include
|
|
6
|
+
include NumberIdentifier
|
|
7
|
+
include NumberAsParam
|
|
8
|
+
include Metadata
|
|
9
9
|
if defined?(Spree::Webhooks)
|
|
10
10
|
include Spree::Webhooks::HasWebhooks
|
|
11
11
|
end
|
|
@@ -222,18 +222,10 @@ module Spree
|
|
|
222
222
|
|
|
223
223
|
def validate_source
|
|
224
224
|
if source && !source.valid?
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
add_source_error(err[:field], err[:message])
|
|
230
|
-
end
|
|
231
|
-
else
|
|
232
|
-
source.errors.messages.each do |field, error|
|
|
233
|
-
next if field.blank? || error.empty?
|
|
234
|
-
|
|
235
|
-
add_source_error(field, error.first)
|
|
236
|
-
end
|
|
225
|
+
source.errors.map { |error| { field: error.attribute, message: error&.message } }.each do |err|
|
|
226
|
+
next if err[:field].blank? || err[:message].blank?
|
|
227
|
+
|
|
228
|
+
add_source_error(err[:field], err[:message])
|
|
237
229
|
end
|
|
238
230
|
end
|
|
239
231
|
!errors.present?
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
class Spree::Preference < Spree::Base
|
|
2
|
-
|
|
2
|
+
if Rails::VERSION::STRING >= '7.1.0'
|
|
3
|
+
serialize :value, coder: YAML
|
|
4
|
+
else
|
|
5
|
+
serialize :value
|
|
6
|
+
end
|
|
3
7
|
|
|
4
8
|
validates :key, presence: true,
|
|
5
9
|
uniqueness: { case_sensitive: false, allow_blank: true, scope: spree_base_uniqueness_scope }
|
data/app/models/spree/price.rb
CHANGED
data/app/models/spree/product.rb
CHANGED
|
@@ -21,13 +21,12 @@
|
|
|
21
21
|
module Spree
|
|
22
22
|
class Product < Spree::Base
|
|
23
23
|
extend FriendlyId
|
|
24
|
-
include
|
|
25
|
-
include
|
|
26
|
-
include
|
|
27
|
-
include
|
|
28
|
-
include
|
|
29
|
-
include
|
|
30
|
-
|
|
24
|
+
include ProductScopes
|
|
25
|
+
include MultiStoreResource
|
|
26
|
+
include TranslatableResource
|
|
27
|
+
include TranslatableResourceSlug
|
|
28
|
+
include MemoizedData
|
|
29
|
+
include Metadata
|
|
31
30
|
if defined?(Spree::Webhooks)
|
|
32
31
|
include Spree::Webhooks::HasWebhooks
|
|
33
32
|
end
|
|
@@ -508,18 +507,10 @@ module Spree
|
|
|
508
507
|
# We call master.default_price here to ensure price is initialized.
|
|
509
508
|
# Required to avoid Variant#check_price validation failing on create.
|
|
510
509
|
unless master.default_price && master.valid?
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
next if err[:field].blank? || err[:message].blank?
|
|
514
|
-
|
|
515
|
-
errors.add(err[:field], err[:message])
|
|
516
|
-
end
|
|
517
|
-
else
|
|
518
|
-
master.errors.messages.each do |field, error|
|
|
519
|
-
next if field.blank? || error.empty?
|
|
510
|
+
master.errors.map { |error| { field: error.attribute, message: error&.message } }.each do |err|
|
|
511
|
+
next if err[:field].blank? || err[:message].blank?
|
|
520
512
|
|
|
521
|
-
|
|
522
|
-
end
|
|
513
|
+
errors.add(err[:field], err[:message])
|
|
523
514
|
end
|
|
524
515
|
end
|
|
525
516
|
end
|
|
@@ -33,7 +33,7 @@ module Spree
|
|
|
33
33
|
delegate :name, :presentation, to: :property, prefix: true, allow_nil: true
|
|
34
34
|
|
|
35
35
|
def property_name=(name)
|
|
36
|
-
|
|
36
|
+
Spree::Deprecation.warn(<<-DEPRECATION, caller)
|
|
37
37
|
`ProductProperty#property_name=` is deprecated and will be removed in Spree 5.0.
|
|
38
38
|
DEPRECATION
|
|
39
39
|
if name.present?
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
module Spree
|
|
2
2
|
class Property < Spree::Base
|
|
3
3
|
include Spree::FilterParam
|
|
4
|
-
include
|
|
5
|
-
include
|
|
4
|
+
include Metadata
|
|
5
|
+
include TranslatableResource
|
|
6
6
|
if defined?(Spree::Webhooks)
|
|
7
7
|
include Spree::Webhooks::HasWebhooks
|
|
8
8
|
end
|
data/app/models/spree/refund.rb
CHANGED
|
@@ -62,7 +62,11 @@ module Spree
|
|
|
62
62
|
scope :exchange_required, -> { eager_load(:exchange_inventory_units).where(spree_inventory_units: { original_return_item_id: nil }).distinct }
|
|
63
63
|
scope :resellable, -> { where resellable: true }
|
|
64
64
|
|
|
65
|
-
|
|
65
|
+
if Rails::VERSION::STRING >= '7.1.0'
|
|
66
|
+
serialize :acceptance_status_errors, coder: YAML
|
|
67
|
+
else
|
|
68
|
+
serialize :acceptance_status_errors
|
|
69
|
+
end
|
|
66
70
|
|
|
67
71
|
delegate :eligible_for_return?, :requires_manual_intervention?, to: :validator
|
|
68
72
|
delegate :variant, to: :inventory_unit
|