mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
Compile Products & Inventory report only on search
This commit is contained in:
@@ -210,9 +210,9 @@ Spree::Admin::ReportsController.class_eval do
|
||||
def products_and_inventory
|
||||
@report_types = report_types[:products_and_inventory]
|
||||
if params[:report_type] != 'lettuce_share'
|
||||
@report = OpenFoodNetwork::ProductsAndInventoryReport.new spree_current_user, params
|
||||
@report = OpenFoodNetwork::ProductsAndInventoryReport.new spree_current_user, params, render_content?
|
||||
else
|
||||
@report = OpenFoodNetwork::LettuceShareReport.new spree_current_user, params
|
||||
@report = OpenFoodNetwork::LettuceShareReport.new spree_current_user, params, render_content?
|
||||
end
|
||||
render_report(@report.header, @report.table, params[:csv], "products_and_inventory_#{timestamp}.csv")
|
||||
end
|
||||
|
||||
@@ -19,6 +19,7 @@ module OpenFoodNetwork
|
||||
end
|
||||
|
||||
def table
|
||||
return [] unless @render_table
|
||||
variants.select { |v| v.in_stock? }
|
||||
.map do |variant|
|
||||
[
|
||||
|
||||
@@ -18,6 +18,7 @@ module OpenFoodNetwork
|
||||
end
|
||||
|
||||
def table
|
||||
return [] unless @render_table
|
||||
variants.map do |variant|
|
||||
[
|
||||
variant.product.supplier.name,
|
||||
|
||||
@@ -2,9 +2,10 @@ module OpenFoodNetwork
|
||||
class ProductsAndInventoryReportBase
|
||||
attr_reader :params
|
||||
|
||||
def initialize(user, params = {})
|
||||
def initialize(user, params = {}, render_table = false)
|
||||
@user = user
|
||||
@params = params
|
||||
@render_table = render_table
|
||||
end
|
||||
|
||||
def permissions
|
||||
|
||||
@@ -235,7 +235,7 @@ describe Spree::Admin::ReportsController, type: :controller do
|
||||
|
||||
it "creates a ProductAndInventoryReport" do
|
||||
expect(OpenFoodNetwork::ProductsAndInventoryReport).to receive(:new)
|
||||
.with(@admin_user, {"test" => "foo", "controller" => "spree/admin/reports", "action" => "products_and_inventory"})
|
||||
.with(@admin_user, {"test" => "foo", "controller" => "spree/admin/reports", "action" => "products_and_inventory"}, false)
|
||||
.and_return(report = double(:report))
|
||||
allow(report).to receive(:header).and_return []
|
||||
allow(report).to receive(:table).and_return []
|
||||
|
||||
@@ -314,6 +314,7 @@ feature %q{
|
||||
expect(page).to have_content "All products"
|
||||
expect(page).to have_content "Inventory (on hand)"
|
||||
click_link 'Products & Inventory'
|
||||
click_button "Search"
|
||||
expect(page).to have_content "Supplier"
|
||||
expect(page).to have_table_row ["Supplier", "Producer Suburb", "Product", "Product Properties", "Taxons", "Variant Value", "Price", "Group Buy Unit Quantity", "Amount", "SKU"].map(&:upcase)
|
||||
expect(page).to have_table_row [product1.supplier.name, product1.supplier.address.city, "Product Name", product1.properties.map(&:presentation).join(", "), product1.primary_taxon.name, "Test", "100.0", product1.group_buy_unit_size.to_s, "", "sku1"]
|
||||
@@ -325,6 +326,7 @@ feature %q{
|
||||
login_to_admin_section
|
||||
click_link 'Reports'
|
||||
click_link 'LettuceShare'
|
||||
click_button "Search"
|
||||
|
||||
expect(page).to have_table_row ['PRODUCT', 'Description', 'Qty', 'Pack Size', 'Unit', 'Unit Price', 'Total', 'GST incl.', 'Grower and growing method', 'Taxon'].map(&:upcase)
|
||||
expect(page).to have_table_row ['Product 2', '100g', '', '100', 'g', '99.0', '', '0', 'Supplier Name (Organic - NASAA 12345)', 'Taxon Name']
|
||||
|
||||
@@ -3,7 +3,7 @@ require 'open_food_network/lettuce_share_report'
|
||||
module OpenFoodNetwork
|
||||
describe LettuceShareReport do
|
||||
let(:user) { create(:user) }
|
||||
let(:report) { LettuceShareReport.new user }
|
||||
let(:report) { LettuceShareReport.new user, {}, true }
|
||||
let(:v) { create(:variant) }
|
||||
|
||||
describe "grower and method" do
|
||||
|
||||
@@ -9,7 +9,7 @@ module OpenFoodNetwork
|
||||
user
|
||||
end
|
||||
subject do
|
||||
ProductsAndInventoryReport.new user
|
||||
ProductsAndInventoryReport.new user, {}, true
|
||||
end
|
||||
|
||||
it "Should return headers" do
|
||||
@@ -72,7 +72,7 @@ module OpenFoodNetwork
|
||||
end
|
||||
|
||||
subject do
|
||||
ProductsAndInventoryReport.new enterprise_user
|
||||
ProductsAndInventoryReport.new enterprise_user, {}, true
|
||||
end
|
||||
|
||||
describe "fetching child variants" do
|
||||
|
||||
Reference in New Issue
Block a user