mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-25 20:46:48 +00:00
For now this view is used only in the context of packing, but later we would move all existing rpeort to use same view
58 lines
1.4 KiB
Ruby
58 lines
1.4 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module Admin
|
|
class ReportsController < Spree::Admin::BaseController
|
|
include ReportsActions
|
|
helper ReportsHelper
|
|
|
|
before_action :authorize_report
|
|
|
|
def show
|
|
render_report && return if ransack_params.blank?
|
|
|
|
@report = report_class.new(spree_current_user, ransack_params, report_options)
|
|
|
|
if export_spreadsheet?
|
|
export_report
|
|
else
|
|
render_report
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def export_report
|
|
render report_format.to_sym => @report.public_send("to_#{report_format}"),
|
|
:filename => report_filename
|
|
end
|
|
|
|
def render_report
|
|
assign_view_data
|
|
load_form_options
|
|
|
|
render "show"
|
|
end
|
|
|
|
def assign_view_data
|
|
@report_type = report_type
|
|
@report_subtype = report_subtype || report_loader.default_report_subtype
|
|
@report_subtypes = report_class.report_subtypes.map do |subtype|
|
|
[t("packing.#{subtype}_report", scope: i18n_scope), subtype]
|
|
end
|
|
if @report_type == "packing"
|
|
@report_message = I18n.t("spree.admin.reports.customer_names_message.customer_names_tip")
|
|
end
|
|
end
|
|
|
|
def load_form_options
|
|
return unless form_options_required?
|
|
|
|
form_options = Reporting::FrontendData.new(spree_current_user)
|
|
|
|
@distributors = form_options.distributors.to_a
|
|
@suppliers = form_options.suppliers.to_a
|
|
@order_cycles = form_options.order_cycles.to_a
|
|
end
|
|
end
|
|
end
|