Pass permissions object into OrdersAndFulfillMentsReport

This commit is contained in:
Matt-Yorkley
2019-09-25 19:29:59 +01:00
parent 2489a2f5f5
commit 112adb11db
3 changed files with 16 additions and 12 deletions

View File

@@ -126,7 +126,8 @@ Spree::Admin::ReportsController.class_eval do
@include_blank = I18n.t(:all)
# -- Build Report with Order Grouper
@report = OpenFoodNetwork::OrdersAndFulfillmentsReport.new spree_current_user, params, render_content?
@report = OpenFoodNetwork::OrdersAndFulfillmentsReport.new(spree_current_user,
permissions, params, render_content?)
@table = order_grouper_table
csv_file_name = "#{params[:report_type]}_#{timestamp}.csv"

View File

@@ -6,9 +6,10 @@ include Spree::ReportsHelper
module OpenFoodNetwork
class OrdersAndFulfillmentsReport
attr_reader :params
def initialize(user, params = {}, render_table = false)
def initialize(user, permissions, params = {}, render_table = false)
@params = params
@user = user
@permissions = permissions
@render_table = render_table
end
@@ -288,6 +289,8 @@ module OpenFoodNetwork
private
attr_reader :permissions
def supplier_name
proc { |line_items| find_variant(line_items.first.variant_id).product.supplier.name }
end
@@ -304,11 +307,6 @@ module OpenFoodNetwork
proc { |line_items| find_variant(line_items.first.variant_id).full_name }
end
def permissions
return @permissions unless @permissions.nil?
@permissions = OpenFoodNetwork::Permissions.new(@user)
end
def total_units(line_items)
return " " if not_all_have_unit?(line_items)

View File

@@ -23,7 +23,7 @@ describe OpenFoodNetwork::OrdersAndFulfillmentsReport do
before { order.line_items << line_item }
context "as a site admin" do
subject { described_class.new admin_user, {}, true }
subject { described_class.new admin_user, OpenFoodNetwork::Permissions.new(admin_user), {}, true }
it "fetches completed orders" do
o2 = create(:order)
@@ -39,7 +39,7 @@ describe OpenFoodNetwork::OrdersAndFulfillmentsReport do
end
context "as a manager of a supplier" do
subject { described_class.new user, {}, true }
subject { described_class.new user, OpenFoodNetwork::Permissions.new(user), {}, true }
let(:s1) { create(:supplier_enterprise) }
@@ -98,7 +98,7 @@ describe OpenFoodNetwork::OrdersAndFulfillmentsReport do
end
context "as a manager of a distributor" do
subject { described_class.new user, {}, true }
subject { described_class.new user, OpenFoodNetwork::Permissions.new(user), {}, true }
before do
distributor.enterprise_roles.create!(user: user)
@@ -133,7 +133,9 @@ describe OpenFoodNetwork::OrdersAndFulfillmentsReport do
]
report_types.each do |report_type|
report = described_class.new admin_user, report_type: report_type
report = described_class.new admin_user,
OpenFoodNetwork::Permissions.new(admin_user),
report_type: report_type
expect(report.header.size).to eq(report.columns.size)
end
end
@@ -149,7 +151,10 @@ describe OpenFoodNetwork::OrdersAndFulfillmentsReport do
end
let(:items) {
report = described_class.new(admin_user, { report_type: "order_cycle_customer_totals" }, true)
report = described_class.new(admin_user,
OpenFoodNetwork::Permissions.new(admin_user),
{ report_type: "order_cycle_customer_totals" },
true)
OpenFoodNetwork::OrderGrouper.new(report.rules, report.columns).table(report.table_items)
}