Eager-load option_values in various reports

This commit is contained in:
Matt-Yorkley
2019-11-05 14:24:24 +00:00
parent 6e58ffa927
commit 07fe8e8390
8 changed files with 35 additions and 10 deletions

View File

@@ -51,8 +51,7 @@ module OpenFoodNetwork
def table_items
return [] unless @render_table
Reports::LineItems.list(permissions, params)
Reports::LineItems.list(permissions, report_options)
end
def rules
@@ -122,9 +121,17 @@ module OpenFoodNetwork
private
def report_options
@params.merge(line_item_includes: line_item_includes)
end
def line_item_includes
[{ order: [:bill_address],
variant: [{ option_values: :option_type }, { product: :supplier }] }]
end
def permissions
return @permissions unless @permissions.nil?
@permissions = OpenFoodNetwork::Permissions.new(@user)
end
end

View File

@@ -190,7 +190,7 @@ module OpenFoodNetwork
# rubocop:enable Metrics/PerceivedComplexity
def line_item_includes
[{ variant: { product: :supplier },
[{ variant: [{ option_values: :option_type }, { product: :supplier }],
order: [:bill_address, :ship_address, :order_cycle, :adjustments, :payments,
:user, :distributor, shipments: { shipping_rates: :shipping_method }] }]
end

View File

@@ -69,7 +69,7 @@ module OpenFoodNetwork
def line_item_includes
[{ order: [:distributor, :adjustments, shipments: { shipping_rates: :shipping_method }],
variant: { product: :supplier } }]
variant: [{ option_values: :option_type }, { product: :supplier }] }]
end
end
end

View File

@@ -69,7 +69,8 @@ module OpenFoodNetwork
# rubocop:enable Metrics/AbcSize
def line_item_includes
[{ order: :distributor, variant: { product: :supplier } }]
[{ order: :distributor,
variant: [{ option_values: :option_type }, { product: :supplier }] }]
end
end
end

View File

@@ -55,7 +55,7 @@ module OpenFoodNetwork
# rubocop:enable Metrics/MethodLength
def line_item_includes
[{ variant: { product: :supplier } }]
[{ variant: [{ option_values: :option_type }, { product: :supplier }] }]
end
end
end

View File

@@ -43,8 +43,7 @@ module OpenFoodNetwork
def table_items
return [] unless @render_table
Reports::LineItems.list(permissions, params)
Reports::LineItems.list(permissions, report_options)
end
def rules
@@ -121,9 +120,17 @@ module OpenFoodNetwork
private
def report_options
@params.merge(line_item_includes: line_item_includes)
end
def line_item_includes
[{ order: [:bill_address, :distributor],
variant: [{ option_values: :option_type }, { product: :supplier }] }]
end
def permissions
return @permissions unless @permissions.nil?
@permissions = OpenFoodNetwork::Permissions.new(@user)
end

View File

@@ -25,6 +25,7 @@ module OpenFoodNetwork
def child_variants
Spree::Variant.
where(is_master: false).
includes(option_values: :option_type).
joins(:product).
merge(visible_products).
order('spree_products.name')

View File

@@ -43,6 +43,15 @@ module OpenFoodNetwork
private
def report_options
@opts.merge(line_item_includes: line_item_includes)
end
def line_item_includes
[:bill_address, :adjustments,
line_items: { variant: [{ option_values: :option_type }, { product: :supplier }] }]
end
def detail_rows_for_order(order, invoice_number, opts)
rows = []