From 0b878dd0a2c5d69e62c86d7afe5aad736dd05654 Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Sat, 21 Mar 2020 08:44:31 +0100 Subject: [PATCH] Use named scope for finding line_items in a set of orders --- app/models/spree/line_item_decorator.rb | 4 ++++ lib/open_food_network/reports/line_items.rb | 4 +--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/models/spree/line_item_decorator.rb b/app/models/spree/line_item_decorator.rb index 5581993dff..6f085f30f5 100644 --- a/app/models/spree/line_item_decorator.rb +++ b/app/models/spree/line_item_decorator.rb @@ -36,6 +36,10 @@ Spree::LineItem.class_eval do end } + scope :in_orders, lambda { |orders| + where(order_id: orders) + } + # Find line items that are from order sorted by variant name and unit value scope :sorted_by_name_and_unit_value, -> { joins(variant: :product). diff --git a/lib/open_food_network/reports/line_items.rb b/lib/open_food_network/reports/line_items.rb index 4e272a7c13..ce3bc9e97e 100644 --- a/lib/open_food_network/reports/line_items.rb +++ b/lib/open_food_network/reports/line_items.rb @@ -12,9 +12,7 @@ module OpenFoodNetwork end def list(line_item_includes = nil) - line_items = @order_permissions. - visible_line_items. - merge(Spree::LineItem.where(order_id: orders.result)) + line_items = @order_permissions.visible_line_items.in_orders(orders.result) if @params[:supplier_id_in].present? line_items = line_items.supplied_by_any(@params[:supplier_id_in])