Reports: Ability to hide columns

This commit is contained in:
Sebastian Castro
2022-04-06 10:39:51 +02:00
committed by Jean-Baptiste Bellet
parent 9874c7996e
commit eeb525aedb
4 changed files with 21 additions and 5 deletions

View File

@@ -17,6 +17,13 @@
= check_box_tag :display_summary_row, true, params[:display_summary_row]
= label_tag :display_summary_row, t(".summary_row")
- if @report.available_headers.present?
.row
.alpha.two.columns= label_tag nil, t(:report_hide_columns)
.omega.fourteen.columns
= select_tag(:fields_to_hide, options_for_select(@report.available_headers, params[:fields_to_hide]),
class: "select2 fullwidth", multiple: true)
.row.rendering-options
.alpha.two.columns
= label_tag :report_format, t(".generate_report")

View File

@@ -2625,6 +2625,7 @@ See the %{link} to find out more about %{sitename}'s features and to start using
report_payment_totals: 'Payment Totals'
report_all: 'all'
report_order_cycle: "Order Cycle"
report_hide_columns: Columns to Hide
report_enterprises: "Enterprises"
report_enterprise_fee: "Fees Names"
report_users: "Users"

View File

@@ -139,9 +139,7 @@ module Reporting
end
def slice_row_fields(row)
result = row.clone
report.fields_to_hide.each { |field| result.delete_field!(field) }
result
OpenStruct.new(row.to_h.reject { |k, _v| k.in?(report.fields_to_hide) })
end
# Compute the query result item into a result row

View File

@@ -28,11 +28,17 @@ module Reporting
Ransack::Search.new(Spree::Order)
end
def available_headers
columns.is_a?(Hash) ? columns.keys.map { |key| [translate_header(key), key] } : nil
rescue NotImplementedError
nil
end
# Can be re implemented in subclasses if they not use yet the new syntax
# with columns method
def table_headers
columns.keys.filter{ |key| !key.in?(fields_to_hide) }.map do |key|
custom_headers[key] || I18n.t("report_header_#{key}")
translate_header(key)
end
end
@@ -57,7 +63,11 @@ module Reporting
formatted_rules.map { |rule| rule[:fields_used_in_header] }.flatten.reject(&:blank?)
else
[]
end
end.concat(params_fields_to_hide)
end
def params_fields_to_hide
params[:fields_to_hide]&.map(&:to_sym) || []
end
# Rules for grouping, ordering, and summary rows