spree_core 5.0.3 → 5.0.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: 61dc753fc9921cc827589519ccd19bdd4db91ff9ba052174e84e6681578b67a3
4
- data.tar.gz: 9e992274856bc445de5a7b4041126721e992e1554aa0d677ff87c908a52c6cc9
3
+ metadata.gz: 8dad7a44435e17f7a0b717356dfe3f8f70cac0e9a18f38f505ded42f3908faf5
4
+ data.tar.gz: 109859dd8b1790ab9c0a22c1457e03e81708d79007664f0c8afae841573dd43e
5
5
  SHA512:
6
- metadata.gz: 6a6b74d64d7be259de034cfc831f6eaf9877f9f801a3312adda2af3983060948e8434e2ef4d7ad4b3fdbeac7ff366ae6d87a210b27f7172769abbda9243e46b5
7
- data.tar.gz: f31e47f912ee551e853fe190e1acd34009d3c191cc9666797db4986fbecbb445062e6533de35489998dbdea569d85fd9bf0fd54ee3e27047c5c373e6c2a62ad6
6
+ metadata.gz: f09637caac881e203c1ff4f1104c2035c89df6cf671d619b7b9e4786a82a4d65332e6537fa4932545e1782203c82f1b41bb6e4c416674df57de95ccbb014410f
7
+ data.tar.gz: 2e499043d9f6393d208ce6cdb823059e734748e79924612d408e6de48d5e36c89cb1799405dd62da06e53aa6b8df3693033a267948fb3e6a4fc2077d4efbce2d
@@ -443,6 +443,7 @@ module Spree
443
443
  # @return [Array<Spree::Variant>] the backordered variants for the order
444
444
  def backordered_variants
445
445
  variants.
446
+ where(track_inventory: true).
446
447
  joins(:stock_items, :product).
447
448
  where(Spree::StockItem.table_name => { count_on_hand: ..0, backorderable: true })
448
449
  end
@@ -814,6 +815,10 @@ module Spree
814
815
  csv_lines
815
816
  end
816
817
 
818
+ def all_line_items
819
+ line_items
820
+ end
821
+
817
822
  private
818
823
 
819
824
  def link_by_email
@@ -6,6 +6,14 @@ module Spree
6
6
  BOTTOM_PADDING_DEFAULT = 20
7
7
 
8
8
  preference :text_color, :string
9
+
10
+ def icon_name
11
+ 'shopping-cart-plus'
12
+ end
13
+
14
+ def display_name
15
+ Spree.t('page_blocks.products.buy_buttons.display_name')
16
+ end
9
17
  end
10
18
  end
11
19
  end
@@ -6,6 +6,10 @@ module Spree
6
6
  BOTTOM_PADDING_DEFAULT = 20
7
7
 
8
8
  preference :text_color, :string
9
+
10
+ def icon_name
11
+ 'selector'
12
+ end
9
13
  end
10
14
  end
11
15
  end
@@ -3,6 +3,10 @@ module Spree
3
3
  module Products
4
4
  class VariantPicker < Spree::PageBlock
5
5
  preference :text_color, :string
6
+
7
+ def icon_name
8
+ 'select'
9
+ end
6
10
  end
7
11
  end
8
12
  end
@@ -41,6 +41,10 @@ module Spree
41
41
  def blocks_available?
42
42
  true
43
43
  end
44
+
45
+ def can_sort_blocks?
46
+ true
47
+ end
44
48
  end
45
49
  end
46
50
  end
@@ -26,10 +26,22 @@ module Spree
26
26
  ]
27
27
  end
28
28
 
29
+ def available_blocks_to_add
30
+ [
31
+ Spree::PageBlocks::Buttons,
32
+ Spree::PageBlocks::Heading,
33
+ Spree::PageBlocks::Text
34
+ ]
35
+ end
36
+
29
37
  def blocks_available?
30
38
  true
31
39
  end
32
40
 
41
+ def can_sort_blocks?
42
+ true
43
+ end
44
+
33
45
  def icon_name
34
46
  'slideshow'
35
47
  end
@@ -27,6 +27,14 @@ module Spree
27
27
  ]
28
28
  end
29
29
 
30
+ def available_blocks_to_add
31
+ [
32
+ Spree::PageBlocks::Buttons,
33
+ Spree::PageBlocks::Heading,
34
+ Spree::PageBlocks::Text
35
+ ]
36
+ end
37
+
30
38
  def default_links
31
39
  @default_links.presence || [
32
40
  Spree::PageLink.new(
@@ -40,6 +48,10 @@ module Spree
40
48
  true
41
49
  end
42
50
 
51
+ def can_sort_blocks?
52
+ true
53
+ end
54
+
43
55
  def icon_name
44
56
  'photo'
45
57
  end
@@ -32,7 +32,7 @@ module Spree
32
32
  end
33
33
 
34
34
  def available_blocks_to_add
35
- [Spree::PageBlocks::Image]
35
+ [Spree::PageBlocks::Image, Spree::PageBlocks::Heading, Spree::PageBlocks::Text, Spree::PageBlocks::NewsletterForm]
36
36
  end
37
37
 
38
38
  def can_sort_blocks?
@@ -8,10 +8,21 @@ module Spree
8
8
  ]
9
9
  end
10
10
 
11
+ def available_blocks_to_add
12
+ [
13
+ Spree::PageBlocks::Heading,
14
+ Spree::PageBlocks::Text
15
+ ]
16
+ end
17
+
11
18
  def blocks_available?
12
19
  true
13
20
  end
14
21
 
22
+ def can_sort_blocks?
23
+ true
24
+ end
25
+
15
26
  def icon_name
16
27
  'text-caption'
17
28
  end
@@ -44,6 +44,10 @@ module Spree
44
44
  ]
45
45
  end
46
46
 
47
+ def available_blocks_to_add
48
+ [Spree::PageBlocks::Heading]
49
+ end
50
+
47
51
  def icon_name
48
52
  'movie'
49
53
  end
@@ -52,6 +56,10 @@ module Spree
52
56
  true
53
57
  end
54
58
 
59
+ def can_sort_blocks?
60
+ true
61
+ end
62
+
55
63
  def video_embed
56
64
  @video_embed ||= ::ActionText::VideoEmbed.find_by(id: preferred_youtube_video_embed_id) if preferred_youtube_video_embed_id.present?
57
65
  end
@@ -595,7 +595,11 @@ module Spree
595
595
  join_translation_table(Taxonomy).
596
596
  find_by(Taxonomy.translation_table_alias => { name: Spree.t(:taxonomy_brands_name) })
597
597
  else
598
- taxons.joins(:taxonomy).find_by(Taxonomy.table_name => { name: Spree.t(:taxonomy_brands_name) })
598
+ if taxons.loaded?
599
+ taxons.find { |taxon| taxon.taxonomy.name == Spree.t(:taxonomy_brands_name) }
600
+ else
601
+ taxons.joins(:taxonomy).find_by(Taxonomy.table_name => { name: Spree.t(:taxonomy_brands_name) })
602
+ end
599
603
  end
600
604
  end
601
605
 
@@ -606,7 +610,11 @@ module Spree
606
610
  order(depth: :desc).
607
611
  find_by(Taxonomy.translation_table_alias => { name: Spree.t(:taxonomy_categories_name) })
608
612
  else
609
- taxons.joins(:taxonomy).order(depth: :desc).find_by(Taxonomy.table_name => { name: Spree.t(:taxonomy_categories_name) })
613
+ if taxons.loaded?
614
+ taxons.find { |taxon| taxon.taxonomy.name == Spree.t(:taxonomy_categories_name) }
615
+ else
616
+ taxons.joins(:taxonomy).order(depth: :desc).find_by(Taxonomy.table_name => { name: Spree.t(:taxonomy_categories_name) })
617
+ end
610
618
  end
611
619
  end
612
620
 
@@ -430,7 +430,7 @@ module Spree
430
430
  end
431
431
 
432
432
  def manifest_unstock(item)
433
- stock_location.unstock item.variant, item.quantity, self
433
+ stock_location.unstock(item.variant, item.quantity, self) if item.variant.track_inventory?
434
434
  end
435
435
 
436
436
  def recalculate_adjustments
@@ -338,6 +338,8 @@ module Spree
338
338
  end
339
339
  end
340
340
 
341
+ # Returns the default stock location for the store or creates a new one if it doesn't exist
342
+ # @return [Spree::StockLocation]
341
343
  def default_stock_location
342
344
  @default_stock_location ||= begin
343
345
  stock_location_scope = Spree::StockLocation.order_default
@@ -73,6 +73,8 @@ module Spree
73
73
  after_create :create_stock_items
74
74
  after_create :set_master_out_of_stock, unless: :is_master?
75
75
  after_commit :clear_line_items_cache, on: :update
76
+
77
+ after_create :create_default_stock_item, unless: :track_inventory?
76
78
  after_update_commit :handle_track_inventory_change
77
79
 
78
80
  after_commit :remove_prices_from_master_variant, on: [:create, :update], unless: :is_master?
@@ -553,11 +555,17 @@ module Spree
553
555
  line_items.update_all(updated_at: Time.current)
554
556
  end
555
557
 
558
+ def create_default_stock_item
559
+ return if stock_items.any?
560
+
561
+ Spree::Store.current.default_stock_location.set_up_stock_item(self)
562
+ end
563
+
556
564
  def handle_track_inventory_change
557
565
  return unless track_inventory_previously_changed?
558
566
  return if track_inventory
559
567
 
560
- stock_items.update_all(backorderable: true, count_on_hand: 0, updated_at: Time.current)
568
+ stock_items.update_all(count_on_hand: 0, updated_at: Time.current)
561
569
  end
562
570
 
563
571
  def remove_prices_from_master_variant
@@ -1429,6 +1429,9 @@ en:
1429
1429
  newsletter_form:
1430
1430
  button_text_default: Submit
1431
1431
  placeholder_default: Enter your email
1432
+ products:
1433
+ buy_buttons:
1434
+ display_name: Add To Cart
1432
1435
  page_not_found: Sorry! Page you are looking can’t be found.
1433
1436
  page_sections:
1434
1437
  announcement_bar:
@@ -2119,6 +2122,7 @@ en:
2119
2122
  translations_for: "%{resource_name} translations"
2120
2123
  tree: Tree
2121
2124
  true_label: 'TRUE'
2125
+ try_removing_filters: Try removing some filters to see more products
2122
2126
  twitter: Twitter
2123
2127
  type: Type
2124
2128
  type_to_search: Type to search
@@ -2140,6 +2144,7 @@ en:
2140
2144
  update_contact_information: Update contact information
2141
2145
  update_shipping_address: Update shipping address
2142
2146
  updated: Updated
2147
+ updated_at: Updated at
2143
2148
  updating: Updating
2144
2149
  upload_image: Upload image
2145
2150
  url: URL
@@ -26,6 +26,7 @@ module Spree
26
26
  end
27
27
 
28
28
  def set_token
29
+ Spree::Deprecation.warn('set_token is deprecated and will be removed in Spree 5.2. Please use create_token_cookie(token) instead.')
29
30
  cookies.permanent.signed[:token] ||= cookies.signed[:guest_token]
30
31
  cookies.permanent.signed[:token] ||= {
31
32
  value: generate_token,
@@ -118,7 +118,8 @@ module Spree
118
118
  value: token,
119
119
  expires: 90.days.from_now,
120
120
  secure: Rails.configuration.force_ssl || Rails.application.config.ssl_options[:secure_cookies],
121
- domain: current_store.url_or_custom_domain
121
+ domain: current_store.url_or_custom_domain,
122
+ httponly: true
122
123
  }
123
124
  end
124
125
 
@@ -1,5 +1,5 @@
1
1
  module Spree
2
- VERSION = '5.0.3'.freeze
2
+ VERSION = '5.0.4'.freeze
3
3
 
4
4
  def self.version
5
5
  VERSION
@@ -20,7 +20,7 @@ Capybara.register_driver :selenium_chrome_headless do |app|
20
20
  options = ::Selenium::WebDriver::Chrome::Options.new
21
21
  options.add_argument '--headless'
22
22
  options.add_argument '--disable-gpu'
23
- options.add_argument '--window-size=1400,900'
23
+ options.add_argument '--window-size=1440,900'
24
24
  options.add_argument '--disable-search-engine-choice-screen'
25
25
 
26
26
  # Disable timers being throttled in background pages/tabs. Useful for parallel test runs.
@@ -11,6 +11,10 @@ FactoryBot.define do
11
11
  )&.destroy
12
12
  end
13
13
 
14
- after(:create) { |object| object.adjust_count_on_hand(10) }
14
+ transient do
15
+ adjust_count_on_hand { true }
16
+ end
17
+
18
+ after(:create) { |object, evaluator| object.adjust_count_on_hand(10) if evaluator.adjust_count_on_hand }
15
19
  end
16
20
  end
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.0.3
4
+ version: 5.0.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-05-06 00:00:00.000000000 Z
13
+ date: 2025-05-22 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: i18n-tasks
@@ -1308,9 +1308,9 @@ licenses:
1308
1308
  - BSD-3-Clause
1309
1309
  metadata:
1310
1310
  bug_tracker_uri: https://github.com/spree/spree/issues
1311
- changelog_uri: https://github.com/spree/spree/releases/tag/v5.0.3
1311
+ changelog_uri: https://github.com/spree/spree/releases/tag/v5.0.4
1312
1312
  documentation_uri: https://docs.spreecommerce.org/
1313
- source_code_uri: https://github.com/spree/spree/tree/v5.0.3
1313
+ source_code_uri: https://github.com/spree/spree/tree/v5.0.4
1314
1314
  post_install_message:
1315
1315
  rdoc_options: []
1316
1316
  require_paths: