From 53183b8598092092d86b1fc20fc4494d1c9a53b3 Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Wed, 15 Apr 2020 23:09:29 +0200 Subject: [PATCH 1/3] Eager-load properties in inject_enterprise_and_relatives --- app/helpers/injection_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/helpers/injection_helper.rb b/app/helpers/injection_helper.rb index 965959df8f..508a984920 100644 --- a/app/helpers/injection_helper.rb +++ b/app/helpers/injection_helper.rb @@ -47,7 +47,7 @@ module InjectionHelper enterprises_and_relatives = current_distributor. relatives_including_self. activated. - includes(address: [:state, :country]). + includes(:properties, address: [:state, :country], supplied_products: :properties). all inject_json_ams "enterprises", From f4bcf6c6d5782c998ce6cab7df6100bcbf0aede7 Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Thu, 16 Apr 2020 00:05:12 +0200 Subject: [PATCH 2/3] Eager-load line_item associations in order --- app/models/spree/order_decorator.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/models/spree/order_decorator.rb b/app/models/spree/order_decorator.rb index 85b86c4169..7fa3af05e6 100644 --- a/app/models/spree/order_decorator.rb +++ b/app/models/spree/order_decorator.rb @@ -263,7 +263,11 @@ Spree::Order.class_eval do end def line_item_variants - line_items.map(&:variant) + if line_items.loaded? + line_items.map(&:variant) + else + line_items.includes(:variant).map(&:variant) + end end # Show already bought line items of this order cycle From 96825444420b50b61d6f8afc8e047d76213953da Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Thu, 16 Apr 2020 01:09:11 +0200 Subject: [PATCH 3/3] Eager-load and update BasicEnterpriseSerializer --- .../admin/enterprise_relationships_controller.rb | 10 +++++++--- .../api/admin/basic_enterprise_serializer.rb | 8 ++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/app/controllers/admin/enterprise_relationships_controller.rb b/app/controllers/admin/enterprise_relationships_controller.rb index 0ffb648f44..545f0e429c 100644 --- a/app/controllers/admin/enterprise_relationships_controller.rb +++ b/app/controllers/admin/enterprise_relationships_controller.rb @@ -1,9 +1,13 @@ module Admin class EnterpriseRelationshipsController < ResourceController def index - @my_enterprises = Enterprise.managed_by(spree_current_user).by_name - @all_enterprises = Enterprise.by_name - @enterprise_relationships = EnterpriseRelationship.by_name.involving_enterprises @my_enterprises + @my_enterprises = Enterprise. + includes(:shipping_methods, :payment_methods). + managed_by(spree_current_user).by_name + @all_enterprises = Enterprise.includes(:shipping_methods, :payment_methods).by_name + @enterprise_relationships = EnterpriseRelationship. + includes(:parent, :child). + by_name.involving_enterprises @my_enterprises end def create diff --git a/app/serializers/api/admin/basic_enterprise_serializer.rb b/app/serializers/api/admin/basic_enterprise_serializer.rb index 880147e296..9072f94291 100644 --- a/app/serializers/api/admin/basic_enterprise_serializer.rb +++ b/app/serializers/api/admin/basic_enterprise_serializer.rb @@ -1,4 +1,12 @@ class Api::Admin::BasicEnterpriseSerializer < ActiveModel::Serializer attributes :name, :id, :is_primary_producer, :is_distributor, :sells, :category, :payment_method_ids, :shipping_method_ids, :producer_profile_only, :permalink + + def payment_method_ids + object.payment_methods.map(&:id) + end + + def shipping_method_ids + object.shipping_methods.map(&:id) + end end