spree_core 5.1.3 → 5.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
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 90be1a32290303d4feb6a777d2a5ed2d88232edfa9998e748299df632346543f
|
4
|
+
data.tar.gz: 63b6aebfc73bdb8e56e945471245cb2ac4bff7afb09db4d4377b753ba6bcfe06
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6f4cd428b66cee1b390d3710ff2d33d71a4d4ffcfa8648672937eb748a6c91993e1ec8d23495b099e25efc8790a8d0a093d849339f5659be6097ffb878bde293
|
7
|
+
data.tar.gz: 5c7186492fe423d5b8862771dd3767ad9f9d9fb5c00bd71a434c19a5b3d938c9a071579aa54594f235ad16e0c9bac64bfbab8d286a0f40ae5522cffe8c453b82
|
@@ -9,7 +9,7 @@ module Spree
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def payment_sources
|
12
|
-
credit_cards.
|
12
|
+
credit_cards.capturable.not_expired.where(payment_method: Spree::PaymentMethod.active).not_removed
|
13
13
|
end
|
14
14
|
|
15
15
|
def drop_payment_source(source)
|
@@ -39,6 +39,7 @@ module Spree
|
|
39
39
|
end
|
40
40
|
|
41
41
|
scope :with_payment_profile, -> { where.not(gateway_customer_profile_id: nil) }
|
42
|
+
scope :capturable, -> { where.not(gateway_customer_profile_id: nil).or(where.not(gateway_payment_profile_id: nil)) }
|
42
43
|
scope :default, -> { where(default: true) }
|
43
44
|
scope :not_expired, lambda {
|
44
45
|
where('CAST(spree_credit_cards.year AS DECIMAL) > ?', Time.current.year).
|
data/app/models/spree/gateway.rb
CHANGED
@@ -67,7 +67,7 @@ module Spree
|
|
67
67
|
|
68
68
|
def sources_by_order(order)
|
69
69
|
source_ids = order.payments.where(source_type: payment_source_class.to_s, payment_method_id: id).pluck(:source_id).uniq
|
70
|
-
payment_source_class.where(id: source_ids).
|
70
|
+
payment_source_class.where(id: source_ids).capturable
|
71
71
|
end
|
72
72
|
|
73
73
|
def reusable_sources(order)
|
@@ -75,7 +75,7 @@ module Spree
|
|
75
75
|
sources_by_order order
|
76
76
|
else
|
77
77
|
if order.user_id
|
78
|
-
credit_cards.where(user_id: order.user_id).
|
78
|
+
credit_cards.where(user_id: order.user_id).capturable
|
79
79
|
else
|
80
80
|
[]
|
81
81
|
end
|
data/app/models/spree/payment.rb
CHANGED
@@ -32,7 +32,7 @@ module Spree
|
|
32
32
|
has_many :refunds, inverse_of: :payment
|
33
33
|
|
34
34
|
validates :payment_method, presence: true
|
35
|
-
validates :source, presence: true, if:
|
35
|
+
validates :source, presence: true, if: :source_required?
|
36
36
|
validate :payment_method_available_for_order, on: :create
|
37
37
|
|
38
38
|
before_validation :validate_source
|
@@ -50,6 +50,7 @@ module Spree
|
|
50
50
|
after_destroy :update_order
|
51
51
|
|
52
52
|
attr_accessor :source_attributes, :request_env, :capture_on_dispatch
|
53
|
+
attribute :skip_source_requirement, :boolean, default: false
|
53
54
|
|
54
55
|
after_initialize :build_source
|
55
56
|
|
@@ -247,6 +248,12 @@ module Spree
|
|
247
248
|
source_class.respond_to?(:display_name) ? source_class.display_name : source_class.name.demodulize.split(/(?=[A-Z])/).join(' ')
|
248
249
|
end
|
249
250
|
|
251
|
+
def source_required?
|
252
|
+
return false if skip_source_requirement
|
253
|
+
|
254
|
+
payment_method&.source_required?
|
255
|
+
end
|
256
|
+
|
250
257
|
private
|
251
258
|
|
252
259
|
def set_amount
|
@@ -11,11 +11,15 @@ module Spree
|
|
11
11
|
friendly_id :slug_candidates, use: [:history, :slugged, :scoped, :mobility], scope: spree_base_uniqueness_scope, slug_limit: 255
|
12
12
|
|
13
13
|
Product::Translation.class_eval do
|
14
|
-
before_save :set_slug
|
15
14
|
acts_as_paranoid
|
16
15
|
# deleted translation values also need to be accessible for index views listing deleted resources
|
17
16
|
default_scope { unscope(where: :deleted_at) }
|
18
17
|
|
18
|
+
before_validation :set_slug
|
19
|
+
before_validation :ensure_slug_is_unique
|
20
|
+
|
21
|
+
validates :slug, presence: true, uniqueness: { allow_blank: true, case_sensitive: true, scope: [*::Spree.base_class.spree_base_uniqueness_scope, :locale] }
|
22
|
+
|
19
23
|
private
|
20
24
|
|
21
25
|
def set_slug
|
@@ -31,6 +35,11 @@ module Spree
|
|
31
35
|
slug.to_url
|
32
36
|
end
|
33
37
|
end
|
38
|
+
|
39
|
+
def ensure_slug_is_unique
|
40
|
+
slug_exists = self.class.where(slug: slug, locale: locale).where.not(id: id).exists?
|
41
|
+
self.slug = [slug, SecureRandom.uuid].join('-') if slug_exists
|
42
|
+
end
|
34
43
|
end
|
35
44
|
|
36
45
|
before_validation :downcase_slug
|
@@ -57,8 +66,6 @@ module Spree
|
|
57
66
|
def slug_candidates
|
58
67
|
if defined?(:deleted_at) && deleted_at.present?
|
59
68
|
[
|
60
|
-
['deleted', :name],
|
61
|
-
['deleted', :name, :sku],
|
62
69
|
['deleted', :name, :uuid_for_friendly_id]
|
63
70
|
]
|
64
71
|
else
|
@@ -91,7 +98,7 @@ module Spree
|
|
91
98
|
set_slug
|
92
99
|
update_column(:slug, slug)
|
93
100
|
|
94
|
-
new_slug = ->(rec) { "deleted-#{rec.
|
101
|
+
new_slug = ->(rec) { "deleted-#{rec.slug}-#{uuid_for_friendly_id}"[..254] }
|
95
102
|
|
96
103
|
translations.with_deleted.each { |rec| rec.update_columns(slug: new_slug.call(rec)) }
|
97
104
|
slugs.with_deleted.each { |rec| rec.update_column(:slug, new_slug.call(rec)) }
|
data/lib/spree/core/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spree_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.1.
|
4
|
+
version: 5.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sean Schofield
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2025-07-
|
13
|
+
date: 2025-07-24 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: i18n-tasks
|
@@ -1382,9 +1382,9 @@ licenses:
|
|
1382
1382
|
- BSD-3-Clause
|
1383
1383
|
metadata:
|
1384
1384
|
bug_tracker_uri: https://github.com/spree/spree/issues
|
1385
|
-
changelog_uri: https://github.com/spree/spree/releases/tag/v5.1.
|
1385
|
+
changelog_uri: https://github.com/spree/spree/releases/tag/v5.1.4
|
1386
1386
|
documentation_uri: https://docs.spreecommerce.org/
|
1387
|
-
source_code_uri: https://github.com/spree/spree/tree/v5.1.
|
1387
|
+
source_code_uri: https://github.com/spree/spree/tree/v5.1.4
|
1388
1388
|
post_install_message:
|
1389
1389
|
rdoc_options: []
|
1390
1390
|
require_paths:
|