From d4cfa0463fdef006f669c8684457938bd932c733 Mon Sep 17 00:00:00 2001 From: Luis Ramos Date: Tue, 21 Jul 2020 19:12:50 +0100 Subject: [PATCH] Move select out of scope visible_for because it is breaking exchange_product queries and it's just not needed there. The only other use of this product's scope visible_for is the enterprise serializer so we add the select to it. --- app/models/spree/product_decorator.rb | 3 +-- .../api/admin/for_order_cycle/enterprise_serializer.rb | 4 +++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/app/models/spree/product_decorator.rb b/app/models/spree/product_decorator.rb index 602329b5c1..554309f687 100644 --- a/app/models/spree/product_decorator.rb +++ b/app/models/spree/product_decorator.rb @@ -63,8 +63,7 @@ Spree::Product.class_eval do scope :visible_for, lambda { |enterprise| joins('LEFT OUTER JOIN spree_variants AS o_spree_variants ON (o_spree_variants.product_id = spree_products.id)'). joins('LEFT OUTER JOIN inventory_items AS o_inventory_items ON (o_spree_variants.id = o_inventory_items.variant_id)'). - where('o_inventory_items.enterprise_id = (?) AND visible = (?)', enterprise, true). - select('DISTINCT spree_products.*') + where('o_inventory_items.enterprise_id = (?) AND visible = (?)', enterprise, true) } # -- Scopes diff --git a/app/serializers/api/admin/for_order_cycle/enterprise_serializer.rb b/app/serializers/api/admin/for_order_cycle/enterprise_serializer.rb index 360f135680..66ed62b7f8 100644 --- a/app/serializers/api/admin/for_order_cycle/enterprise_serializer.rb +++ b/app/serializers/api/admin/for_order_cycle/enterprise_serializer.rb @@ -30,7 +30,9 @@ class Api::Admin::ForOrderCycle::EnterpriseSerializer < ActiveModel::Serializer def products_scope products_relation = object.supplied_products if order_cycle.prefers_product_selection_from_coordinator_inventory_only? - products_relation = products_relation.visible_for(order_cycle.coordinator) + products_relation = products_relation. + visible_for(order_cycle.coordinator). + select('DISTINCT spree_products.*') end products_relation.order(:name) end