spree_cm_commissioner 2.14.9 → 2.14.10

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: b5426f6a834611d1c303d1305de10998cea1cd5b6ca72c23f512ddff53614b2a
4
- data.tar.gz: cb6688095f5daef9df50906c20d5adb5cba20dc4f2657a430b1d2ab00afaaaf6
3
+ metadata.gz: de45fdbe1a6ac4c18da7e6b8fbd3eb6f4fe7241bb10e23c0d4c23973a91b7170
4
+ data.tar.gz: 54156df2cef71cff39256c04a949869559c0e477f6c1ba413d8b0ef91761d616
5
5
  SHA512:
6
- metadata.gz: e609a94743b1283a225d077dad5ba3f775ed599985d687f8b6c4408de286bc6f8b6e91e4024e675ec03ae06a67a013fa43cc6242cc50070a334bc2ac4731e7d0
7
- data.tar.gz: d007f4f9a802452c020d32f32f44c466e88469ea24386c87f8b45c834ced740d1faf55185d953901640fd1dd73f19af686667ef9f29e615b97642aadc8645020
6
+ metadata.gz: '0383b1bb4e0459522cc0004b2a841a5697e18b9b28ff62469a8e1ce5501f91e7fb3fb8899689c2174d997484231b71883408069aca5f53ed0af400bb8e091cd6'
7
+ data.tar.gz: 5adeb841a23fb3d28a74e0972d34c478a0a80e26ba5ab114bb4d837aac2dadaf98fa9e696aff506fa4ed0de1acaa48af64067e8db8cd34803aa2518e0661945d
data/Gemfile.lock CHANGED
@@ -34,7 +34,7 @@ GIT
34
34
  PATH
35
35
  remote: .
36
36
  specs:
37
- spree_cm_commissioner (2.14.9)
37
+ spree_cm_commissioner (2.14.10)
38
38
  activerecord-multi-tenant
39
39
  activerecord_json_validator (~> 2.1, >= 2.1.3)
40
40
  aws-sdk-cloudfront
@@ -0,0 +1,24 @@
1
+ module SpreeCmCommissioner
2
+ # The taxon serializer renders `visible_products` as loaded, so the sales-channel filter lives here:
3
+ # preloading it scoped to the request's channel hides tenant-only products on BookMe+ and platform-only ones on a tenant app.
4
+ # Prepend it (not include) so it wraps a controller's own `resource`/`paginated_collection`.
5
+ module TaxonVisibleProductsPreloadable
6
+ private
7
+
8
+ def resource
9
+ @resource ||= super.tap { |taxon| preload_visible_products([taxon]) }
10
+ end
11
+
12
+ def paginated_collection
13
+ @paginated_collection ||= super.tap { |taxons| preload_visible_products(taxons.to_a) }
14
+ end
15
+
16
+ def preload_visible_products(taxons)
17
+ ActiveRecord::Associations::Preloader.new(
18
+ records: taxons,
19
+ associations: :visible_products,
20
+ scope: Spree::Product.sellable_on(Spree::Product.sales_channel_for(@tenant))
21
+ ).call
22
+ end
23
+ end
24
+ end
@@ -3,6 +3,8 @@ module Spree
3
3
  module V2
4
4
  module Storefront
5
5
  module TaxonsControllerDecorator
6
+ include SpreeCmCommissioner::TaxonVisibleProductsPreloadable
7
+
6
8
  def scope
7
9
  super.where(preview: false)
8
10
  end
@@ -3,6 +3,8 @@ module Spree
3
3
  module V2
4
4
  module Tenant
5
5
  class TaxonsController < BaseController
6
+ prepend SpreeCmCommissioner::TaxonVisibleProductsPreloadable
7
+
6
8
  private
7
9
 
8
10
  def collection_serializer
@@ -4,10 +4,7 @@ module Spree
4
4
  module TaxonSerializerDecorator
5
5
  def self.prepended(base)
6
6
  base.has_many :vendors, serializer: ::Spree::V2::Storefront::VendorSerializer
7
- # The app lists an event section's tickets from this relation, so products a tenant keeps off BookMe+ are dropped here.
8
- base.has_many :visible_products, serializer: ::Spree::V2::Storefront::ProductSerializer do |taxon|
9
- taxon.visible_products.sellable_on(:platform)
10
- end
7
+ base.has_many :visible_products, serializer: ::Spree::V2::Storefront::ProductSerializer
11
8
  base.has_many :places, serializer: ::Spree::V2::Storefront::PlaceSerializer
12
9
 
13
10
  base.has_one :vendor, serializer: ::Spree::V2::Storefront::VendorSerializer
@@ -1,5 +1,5 @@
1
1
  module SpreeCmCommissioner
2
- VERSION = '2.14.9'.freeze
2
+ VERSION = '2.14.10'.freeze
3
3
 
4
4
  module_function
5
5
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_cm_commissioner
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.14.9
4
+ version: 2.14.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - You
@@ -822,6 +822,7 @@ files:
822
822
  - app/controllers/concerns/spree_cm_commissioner/load_test_login_token_generation.rb
823
823
  - app/controllers/concerns/spree_cm_commissioner/operator/event_authorization.rb
824
824
  - app/controllers/concerns/spree_cm_commissioner/order_concern.rb
825
+ - app/controllers/concerns/spree_cm_commissioner/taxon_visible_products_preloadable.rb
825
826
  - app/controllers/concerns/spree_cm_commissioner/turnstile_protectable.rb
826
827
  - app/controllers/concerns/spree_cm_commissioner/waiting_room_authorization.rb
827
828
  - app/controllers/spree/admin/account_deletions_controller.rb