From bf74282e5f10e3609d14f6305f0d0f68ef24762d Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Thu, 3 May 2018 16:03:32 +1000 Subject: [PATCH] Compile Bulk Co-Op report only on search --- app/controllers/spree/admin/reports_controller_decorator.rb | 3 +-- lib/open_food_network/bulk_coop_report.rb | 4 +++- spec/controllers/spree/admin/reports_controller_spec.rb | 6 +++--- spec/lib/open_food_network/bulk_coop_report_spec.rb | 6 +++--- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/app/controllers/spree/admin/reports_controller_decorator.rb b/app/controllers/spree/admin/reports_controller_decorator.rb index 44faa87990..9b67b3490b 100644 --- a/app/controllers/spree/admin/reports_controller_decorator.rb +++ b/app/controllers/spree/admin/reports_controller_decorator.rb @@ -147,7 +147,6 @@ Spree::Admin::ReportsController.class_eval do end def bulk_coop - # -- Prepare date parameters prepare_date_params params # -- Prepare form options @@ -155,7 +154,7 @@ Spree::Admin::ReportsController.class_eval do @report_type = params[:report_type] # -- Build Report with Order Grouper - @report = OpenFoodNetwork::BulkCoopReport.new spree_current_user, params + @report = OpenFoodNetwork::BulkCoopReport.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 = "bulk_coop_#{params[:report_type]}_#{timestamp}.csv" diff --git a/lib/open_food_network/bulk_coop_report.rb b/lib/open_food_network/bulk_coop_report.rb index a0437e7d42..4ff4555e18 100644 --- a/lib/open_food_network/bulk_coop_report.rb +++ b/lib/open_food_network/bulk_coop_report.rb @@ -4,9 +4,10 @@ require 'open_food_network/reports/bulk_coop_allocation_report' module OpenFoodNetwork class BulkCoopReport attr_reader :params - def initialize(user, params = {}) + def initialize(user, params = {}, render_table = false) @params = params @user = user + @render_table = render_table @supplier_report = OpenFoodNetwork::Reports::BulkCoopSupplierReport.new @allocation_report = OpenFoodNetwork::Reports::BulkCoopAllocationReport.new @@ -48,6 +49,7 @@ module OpenFoodNetwork end def table_items + return [] unless @render_table orders = search.result line_items = permissions.visible_line_items.merge(Spree::LineItem.where(order_id: orders)) diff --git a/spec/controllers/spree/admin/reports_controller_spec.rb b/spec/controllers/spree/admin/reports_controller_spec.rb index 2356f238c5..378ec7d1b3 100644 --- a/spec/controllers/spree/admin/reports_controller_spec.rb +++ b/spec/controllers/spree/admin/reports_controller_spec.rb @@ -97,7 +97,7 @@ describe Spree::Admin::ReportsController, type: :controller do describe 'Bulk Coop' do it "only shows orders that I have access to" do [orderA1, orderA2, orderB1, orderB2] - spree_get :bulk_coop + spree_post :bulk_coop expect(resulting_orders).to include(orderA1, orderB1) expect(resulting_orders).not_to include(orderA2) @@ -157,7 +157,7 @@ describe Spree::Admin::ReportsController, type: :controller do end it "only shows product line items that I am supplying" do - spree_get :bulk_coop + spree_post :bulk_coop expect(resulting_products).to include p1 expect(resulting_products).not_to include p2, p3 @@ -166,7 +166,7 @@ describe Spree::Admin::ReportsController, type: :controller do context "where I have not granted P-OC to the distributor" do it "shows product line items that I am supplying" do - spree_get :bulk_coop + spree_post :bulk_coop expect(resulting_products).not_to include p1, p2, p3 end diff --git a/spec/lib/open_food_network/bulk_coop_report_spec.rb b/spec/lib/open_food_network/bulk_coop_report_spec.rb index 53c2dd2ffe..7ee263fc55 100644 --- a/spec/lib/open_food_network/bulk_coop_report_spec.rb +++ b/spec/lib/open_food_network/bulk_coop_report_spec.rb @@ -14,7 +14,7 @@ module OpenFoodNetwork context "as a site admin" do let(:user) { create(:admin_user) } - subject { BulkCoopReport.new user } + subject { BulkCoopReport.new user, {}, true } it "fetches completed orders" do o2 = create(:order) @@ -31,7 +31,7 @@ module OpenFoodNetwork context "as a manager of a supplier" do let!(:user) { create(:user) } - subject { BulkCoopReport.new user } + subject { BulkCoopReport.new user, {}, true } let(:s1) { create(:supplier_enterprise) } @@ -70,7 +70,7 @@ module OpenFoodNetwork context "as a manager of a distributor" do let!(:user) { create(:user) } - subject { PackingReport.new user } + subject { PackingReport.new user, {}, true } before do d1.enterprise_roles.create!(user: user)