Starts transforming fields_to_hide to fields_to_show

This commit is contained in:
Jean-Baptiste Bellet
2022-05-18 10:53:27 +02:00
parent b7cf397e15
commit 9858936677
4 changed files with 17 additions and 14 deletions

View File

@@ -9,7 +9,7 @@ module Reporting
end
def table_headers
report.columns.keys.filter{ |key| !key.in?(fields_to_hide) }.map do |key|
report.columns.keys.filter{ |key| key.in?(fields_to_show) }.map do |key|
translate_header(key)
end
end
@@ -18,12 +18,15 @@ module Reporting
report.columns.keys.map { |key| [translate_header(key), key] }
end
def fields_to_hide
if report.display_header_row?
report.formatted_rules.map { |rule| rule[:fields_used_in_header] }.flatten.reject(&:blank?)
else
[]
end.concat(params_fields_to_hide)
def fields_to_show
fields_in_headers = if report.display_header_row?
report.formatted_rules.map { |rule|
rule[:fields_used_in_header]
}.flatten.reject(&:blank?)
else
[]
end
params_fields_to_show - fields_in_headers
end
private
@@ -38,8 +41,8 @@ module Reporting
Spree::Money.currency_symbol
end
def params_fields_to_hide
report.params[:fields_to_hide]&.map(&:to_sym) || []
def params_fields_to_show
report.params[:fields_to_show]&.map(&:to_sym) || report.columns.keys
end
end
end

View File

@@ -27,7 +27,7 @@ module Reporting
end
def slice_and_format_row(row)
result = row.to_h.reject { |k, _v| k.in?(report.fields_to_hide) }
result = row.to_h.select { |k, _v| k.in?(report.fields_to_show) }
unless report.raw_render?
result = result.map { |k, v| [k, format_cell(v, k)] }.to_h
end

View File

@@ -9,7 +9,7 @@ module Reporting
delegate :raw_render?, :html_render?, :display_header_row?, :display_summary_row?, to: :renderer
delegate :rows, :table_rows, :grouped_data, to: :rows_builder
delegate :available_headers, :table_headers, :fields_to_hide, to: :headers_builder
delegate :available_headers, :table_headers, :fields_to_show, to: :headers_builder
delegate :formatted_rules, :header_option?, :summary_row_option?, to: :ruler

View File

@@ -101,8 +101,8 @@ module Reporting
check_report
end
describe "fields_to_hide" do
let(:params) { { fields_to_hide: [:product] } }
describe "fields_to_show" do
let(:params) { { fields_to_show: [:hub, :price] } }
it "works" do
@expected_headers = ['Hub', 'Price']
@@ -263,7 +263,7 @@ module Reporting
}]
end
let(:params) { { fields_to_hide: [:customer], report_format: 'json' } }
let(:params) { { fields_to_show: [:hub, :quantity], report_format: 'json' } }
it "works" do
@expetec_rows = [