From 14e7cdd138d560a681acf38dbbe8d73dc010df9b Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Thu, 3 May 2018 11:11:34 +1000 Subject: [PATCH] Don't compile customers report data before search Distributors, suppliers and order cycles are still loaded for the search form. --- app/controllers/spree/admin/reports_controller_decorator.rb | 2 +- lib/open_food_network/customers_report.rb | 4 +++- spec/controllers/spree/admin/reports_controller_spec.rb | 2 +- spec/lib/open_food_network/customers_report_spec.rb | 4 ++-- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/app/controllers/spree/admin/reports_controller_decorator.rb b/app/controllers/spree/admin/reports_controller_decorator.rb index 6ca4b6019e..f5ab7ee597 100644 --- a/app/controllers/spree/admin/reports_controller_decorator.rb +++ b/app/controllers/spree/admin/reports_controller_decorator.rb @@ -63,7 +63,7 @@ Spree::Admin::ReportsController.class_eval do def customers @report_types = report_types[:customers] @report_type = params[:report_type] - @report = OpenFoodNetwork::CustomersReport.new spree_current_user, params + @report = OpenFoodNetwork::CustomersReport.new spree_current_user, params, render_content? render_report(@report.header, @report.table, params[:csv], "customers_#{timestamp}.csv") end diff --git a/lib/open_food_network/customers_report.rb b/lib/open_food_network/customers_report.rb index a84e1ce416..0a605b3596 100644 --- a/lib/open_food_network/customers_report.rb +++ b/lib/open_food_network/customers_report.rb @@ -1,9 +1,10 @@ module OpenFoodNetwork class CustomersReport attr_reader :params - def initialize(user, params = {}) + def initialize(user, params = {}, compile_table = false) @params = params @user = user + @compile_table = compile_table end def header @@ -25,6 +26,7 @@ module OpenFoodNetwork end def table + return [] unless @compile_table orders.map do |order| if is_mailing_list? [order.email, diff --git a/spec/controllers/spree/admin/reports_controller_spec.rb b/spec/controllers/spree/admin/reports_controller_spec.rb index b9d73d48be..a691126da1 100644 --- a/spec/controllers/spree/admin/reports_controller_spec.rb +++ b/spec/controllers/spree/admin/reports_controller_spec.rb @@ -261,7 +261,7 @@ describe Spree::Admin::ReportsController, type: :controller do it "creates a CustomersReport" do expect(OpenFoodNetwork::CustomersReport).to receive(:new) - .with(@admin_user, {"test" => "foo", "controller" => "spree/admin/reports", "action" => "customers"}) + .with(@admin_user, {"test" => "foo", "controller" => "spree/admin/reports", "action" => "customers"}, false) .and_return(report = double(:report)) allow(report).to receive(:header).and_return [] allow(report).to receive(:table).and_return [] diff --git a/spec/lib/open_food_network/customers_report_spec.rb b/spec/lib/open_food_network/customers_report_spec.rb index 289a32929e..c17d54368d 100644 --- a/spec/lib/open_food_network/customers_report_spec.rb +++ b/spec/lib/open_food_network/customers_report_spec.rb @@ -8,7 +8,7 @@ module OpenFoodNetwork user.spree_roles << Spree::Role.find_or_create_by_name!("admin") user end - subject { CustomersReport.new user } + subject { CustomersReport.new user, {}, true } describe "mailing list report" do before do @@ -81,7 +81,7 @@ module OpenFoodNetwork user end - subject { CustomersReport.new user } + subject { CustomersReport.new user, {}, true } describe "fetching orders" do let(:supplier) { create(:supplier_enterprise) }