mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-15 23:57:48 +00:00
Pass permissions object into OrdersAndFulfillMentsReport
This commit is contained in:
@@ -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"
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user