mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-03-25 05:45:15 +00:00
Compile Payments report only on search
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user