spree_core 4.6.1 → 4.6.2

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: 4e5c1992fb7f20f237e3d088cc7c0c79692efb72eaec1e654069ee5b8aeeb846
4
- data.tar.gz: 7dd674422290e6570f1b8bb116bd541cac61cbb403402a5996d829b304dac604
3
+ metadata.gz: 25515bda9382eb9a7fc0e07ac95fea0b0094fd7de31af286e0eed57d5feb205f
4
+ data.tar.gz: f7aba240ca2172c68b41e7da1c0e4864fcadb1ec6a632c919cca59fa7e129076
5
5
  SHA512:
6
- metadata.gz: 586c58de60df801c9f4e54983a929f8c507cb8b05c8161ff3f82bc0780a3a64ee33cc42d1ffa01dbea9ed7dce9dda4ced801ba0298b326e255d38314d1286539
7
- data.tar.gz: 1aeebb1b70bd971a5589f265903a00cd9d6d3c38843968668000d7bf5277832280a2f3b6d7774d73845f2d45f72166873bfc01c493171f0bce973c4cc374c458
6
+ metadata.gz: 2f829f28024c84e1b8b7dba2868fedeffc0f105b237ef3ad946ad64ec9a2c0f789c8f3ae367f42203a3d3c53be08b598df0a4cd3d58aa45479bf4e755091f27c
7
+ data.tar.gz: afefb4b5952e8187f5dc605202fcc578c13bdd9d7f43d411c0763471c32ddb622aaf6f62c2160b1e835d1f974452d54812ebcabd3a072da0ff31af1a698ab3a8
@@ -42,9 +42,25 @@ module Spree
42
42
  translates(*TRANSLATABLE_FIELDS)
43
43
 
44
44
  self::Translation.class_eval do
45
+ before_save :set_slug
45
46
  acts_as_paranoid
46
47
  # deleted translation values also need to be accessible for index views listing deleted resources
47
48
  default_scope { unscope(where: :deleted_at) }
49
+ def set_slug
50
+ self.slug = generate_slug
51
+ end
52
+
53
+ private
54
+
55
+ def generate_slug
56
+ if name.blank? && slug.blank?
57
+ translated_model.name.to_url
58
+ elsif slug.blank?
59
+ name.to_url
60
+ else
61
+ slug.to_url
62
+ end
63
+ end
48
64
  end
49
65
 
50
66
  friendly_id :slug_candidates, use: [:history, :mobility]
@@ -62,19 +62,40 @@ module Spree
62
62
 
63
63
  self::Translation.class_eval do
64
64
  alias_attribute :slug, :permalink
65
-
66
- before_create :set_permalink
65
+ before_save :set_permalink
67
66
 
68
67
  def set_permalink
69
- parent = translated_model.parent
70
- name_with_fallback = name || translated_model.name
68
+ self.permalink = generate_slug
69
+ end
70
+
71
+ private
71
72
 
73
+ def generate_slug
72
74
  if parent.present?
73
- self.permalink = [parent.permalink, (permalink.blank? ? name_with_fallback.to_url : permalink.split('/').last)].join('/')
75
+ generate_permalink_including_parent
76
+ elsif permalink.blank?
77
+ name_with_fallback.to_url
74
78
  else
75
- self.permalink = name_with_fallback.to_url if permalink.blank?
79
+ permalink.to_url
76
80
  end
77
81
  end
82
+
83
+ def generate_permalink_including_parent
84
+ [parent_permalink_with_fallback, (permalink.blank? ? name_with_fallback.to_url : permalink.split('/').last.to_url)].join('/')
85
+ end
86
+
87
+ def name_with_fallback
88
+ name.blank? ? translated_model.name : name
89
+ end
90
+
91
+ def parent
92
+ translated_model.parent
93
+ end
94
+
95
+ def parent_permalink_with_fallback
96
+ localized_parent = parent.translations.find_by(locale: locale)
97
+ localized_parent.present? ? localized_parent.permalink : parent.permalink
98
+ end
78
99
  end
79
100
 
80
101
  # indicate which filters should be used for a taxon
@@ -26,7 +26,10 @@ module Spree
26
26
 
27
27
  def duplicate_product
28
28
  product.dup.tap do |new_product|
29
- product.translations.each { |t| new_product.send(:name=, "COPY OF #{t.name}", locale: t.locale) }
29
+ new_product.translations.each do |t|
30
+ t.name = "COPY OF #{t.name}"
31
+ t.slug = nil
32
+ end
30
33
  new_product.taxons = product.taxons
31
34
  new_product.stores = product.stores
32
35
  new_product.created_at = nil
@@ -1,5 +1,5 @@
1
1
  module Spree
2
- VERSION = '4.6.1'.freeze
2
+ VERSION = '4.6.2'.freeze
3
3
 
4
4
  def self.version
5
5
  VERSION
@@ -13,6 +13,8 @@ FactoryBot.define do
13
13
  twitter { 'spreecommerce' }
14
14
  instagram { 'spreecommerce' }
15
15
  meta_description { 'Sample store description.' }
16
+ digital_asset_authorized_clicks { 5 }
17
+ digital_asset_authorized_days { 7 }
16
18
 
17
19
  trait :with_favicon do
18
20
  transient do
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: 4.6.1
4
+ version: 4.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Schofield
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-07-24 00:00:00.000000000 Z
12
+ date: 2023-09-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: actionpack
@@ -1079,9 +1079,9 @@ licenses:
1079
1079
  - BSD-3-Clause
1080
1080
  metadata:
1081
1081
  bug_tracker_uri: https://github.com/spree/spree/issues
1082
- changelog_uri: https://github.com/spree/spree/releases/tag/v4.6.1
1082
+ changelog_uri: https://github.com/spree/spree/releases/tag/v4.6.2
1083
1083
  documentation_uri: https://dev-docs.spreecommerce.org/
1084
- source_code_uri: https://github.com/spree/spree/tree/v4.6.1
1084
+ source_code_uri: https://github.com/spree/spree/tree/v4.6.2
1085
1085
  post_install_message:
1086
1086
  rdoc_options: []
1087
1087
  require_paths: