mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-03-06 02:51:34 +00:00
Starts transforming fields_to_hide to fields_to_show
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
Reference in New Issue
Block a user