From feb33c3ca592238802a9326e4383b162816f665f Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Thu, 3 May 2018 16:17:34 +1000 Subject: [PATCH] Compile Payments report only on search --- app/controllers/spree/admin/reports_controller_decorator.rb | 2 +- lib/open_food_network/payments_report.rb | 4 +++- spec/controllers/spree/admin/reports_controller_spec.rb | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/controllers/spree/admin/reports_controller_decorator.rb b/app/controllers/spree/admin/reports_controller_decorator.rb index 9b67b3490b..c8046f439a 100644 --- a/app/controllers/spree/admin/reports_controller_decorator.rb +++ b/app/controllers/spree/admin/reports_controller_decorator.rb @@ -171,7 +171,7 @@ Spree::Admin::ReportsController.class_eval do @report_type = params[:report_type] # -- Build Report with Order Grouper - @report = OpenFoodNetwork::PaymentsReport.new spree_current_user, params + @report = OpenFoodNetwork::PaymentsReport.new spree_current_user, params, render_content? order_grouper = OpenFoodNetwork::OrderGrouper.new @report.rules, @report.columns @table = order_grouper.table(@report.table_items) csv_file_name = "payments_#{timestamp}.csv" diff --git a/lib/open_food_network/payments_report.rb b/lib/open_food_network/payments_report.rb index 015b8af247..fc46422011 100644 --- a/lib/open_food_network/payments_report.rb +++ b/lib/open_food_network/payments_report.rb @@ -1,9 +1,10 @@ module OpenFoodNetwork class PaymentsReport attr_reader :params - def initialize(user, params = {}) + def initialize(user, params = {}, render_table = false) @params = params @user = user + @render_table = render_table end def header @@ -37,6 +38,7 @@ module OpenFoodNetwork end def table_items + return [] unless @render_table orders = search.result payments = orders.map { |o| o.payments.select { |payment| payment.completed? } }.flatten # Only select completed payments case params[:report_type] diff --git a/spec/controllers/spree/admin/reports_controller_spec.rb b/spec/controllers/spree/admin/reports_controller_spec.rb index 378ec7d1b3..45fb5f8151 100644 --- a/spec/controllers/spree/admin/reports_controller_spec.rb +++ b/spec/controllers/spree/admin/reports_controller_spec.rb @@ -108,7 +108,7 @@ describe Spree::Admin::ReportsController, type: :controller do describe 'Payments' do it "only shows orders that I have access to" do [orderA1, orderA2, orderB1, orderB2] - spree_get :payments + spree_post :payments expect(resulting_orders_prelim).to include(orderA1, orderB1) expect(resulting_orders_prelim).not_to include(orderA2)