Compile Bulk Co-Op report only on search

This commit is contained in:
Maikel Linke
2018-05-03 16:03:32 +10:00
parent 5f9d239f19
commit bf74282e5f
4 changed files with 10 additions and 9 deletions

View File

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

View File

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

View File

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

View File

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