spree_core 4.6.1 → 4.6.2

Sign up to get free protection for your applications and to get access to all the features.
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: