Don't compile customers report data before search

Distributors, suppliers and order cycles are still loaded for the search
form.
This commit is contained in:
Maikel Linke
2018-05-03 11:11:34 +10:00
parent 8393b1d4c0
commit 14e7cdd138
4 changed files with 7 additions and 5 deletions

View File

@@ -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

View File

@@ -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,

View File

@@ -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 []

View File

@@ -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) }