fix: balcmds: show digit groups marks in html output again [#2196]

This broke in 1.25.
This commit is contained in:
Simon Michael 2024-04-25 07:55:02 -10:00
parent 0dc59cdc12
commit 9ffa990e9e
2 changed files with 21 additions and 6 deletions

View File

@ -545,11 +545,12 @@ multiBalanceReportAsCsv opts@ReportOpts{..} report = maybeTranspose allRows
allRows = case layout_ of allRows = case layout_ of
LayoutTidy -> rows -- tidy csv should not include totals or averages LayoutTidy -> rows -- tidy csv should not include totals or averages
_ -> rows ++ totals _ -> rows ++ totals
(rows, totals) = multiBalanceReportAsCsv' opts report (rows, totals) = multiBalanceReportAsCsvOrHtml False opts report
maybeTranspose = if transpose_ then transpose else id maybeTranspose = if transpose_ then transpose else id
multiBalanceReportAsCsv' :: ReportOpts -> MultiBalanceReport -> (CSV, CSV) -- Helper used for both CSV and HTML rendering.
multiBalanceReportAsCsv' opts@ReportOpts{..} (PeriodicReport colspans items tr) = multiBalanceReportAsCsvOrHtml :: Bool -> ReportOpts -> MultiBalanceReport -> (CSV, CSV)
multiBalanceReportAsCsvOrHtml ishtml opts@ReportOpts{..} (PeriodicReport colspans items tr) =
(headers : concatMap fullRowAsTexts items, totalrows) (headers : concatMap fullRowAsTexts items, totalrows)
where where
headers = "account" : case layout_ of headers = "account" : case layout_ of
@ -558,11 +559,12 @@ multiBalanceReportAsCsv' opts@ReportOpts{..} (PeriodicReport colspans items tr)
_ -> dateHeaders _ -> dateHeaders
dateHeaders = map showDateSpan colspans ++ ["total" | row_total_] ++ ["average" | average_] dateHeaders = map showDateSpan colspans ++ ["total" | row_total_] ++ ["average" | average_]
fullRowAsTexts row = map (showName row :) $ multiBalanceRowAsCsvText opts colspans row fullRowAsTexts row = map (showName row :) $ rowAsText opts colspans row
showName = accountNameDrop drop_ . prrFullName showName = accountNameDrop drop_ . prrFullName
totalrows totalrows
| no_total_ = mempty | no_total_ = mempty
| otherwise = map ("total" :) $ multiBalanceRowAsCsvText opts colspans tr | otherwise = map ("total" :) $ rowAsText opts colspans tr
rowAsText = if ishtml then multiBalanceRowAsHtmlText else multiBalanceRowAsCsvText
-- | Render a multi-column balance report as HTML. -- | Render a multi-column balance report as HTML.
multiBalanceReportAsHtml :: ReportOpts -> MultiBalanceReport -> Html () multiBalanceReportAsHtml :: ReportOpts -> MultiBalanceReport -> Html ()
@ -583,7 +585,7 @@ multiBalanceReportHtmlRows ropts mbr =
-- TODO: should the commodity_column be displayed as a subaccount in this case as well? -- TODO: should the commodity_column be displayed as a subaccount in this case as well?
(headingsrow:bodyrows, mtotalsrows) (headingsrow:bodyrows, mtotalsrows)
| transpose_ ropts = error' "Sorry, --transpose with HTML output is not yet supported" -- PARTIAL: | transpose_ ropts = error' "Sorry, --transpose with HTML output is not yet supported" -- PARTIAL:
| otherwise = multiBalanceReportAsCsv' ropts mbr | otherwise = multiBalanceReportAsCsvOrHtml True ropts mbr
in in
(multiBalanceReportHtmlHeadRow ropts headingsrow (multiBalanceReportHtmlHeadRow ropts headingsrow
,map (multiBalanceReportHtmlBodyRow ropts) bodyrows ,map (multiBalanceReportHtmlBodyRow ropts) bodyrows
@ -777,9 +779,13 @@ multiBalanceRowAsWbs bopts ReportOpts{..} colspans (PeriodicReportRow _ as rowto
m (x:xs) = x:xs m (x:xs) = x:xs
m [] = [n] m [] = [n]
multiBalanceRowAsCsvText :: ReportOpts -> [DateSpan] -> PeriodicReportRow a MixedAmount -> [[T.Text]] multiBalanceRowAsCsvText :: ReportOpts -> [DateSpan] -> PeriodicReportRow a MixedAmount -> [[T.Text]]
multiBalanceRowAsCsvText opts colspans = fmap (fmap wbToText) . multiBalanceRowAsWbs machineFmt opts colspans multiBalanceRowAsCsvText opts colspans = fmap (fmap wbToText) . multiBalanceRowAsWbs machineFmt opts colspans
multiBalanceRowAsHtmlText :: ReportOpts -> [DateSpan] -> PeriodicReportRow a MixedAmount -> [[T.Text]]
multiBalanceRowAsHtmlText opts colspans = fmap (fmap wbToText) . multiBalanceRowAsWbs oneLineNoCostFmt opts colspans
multiBalanceRowAsTableText :: ReportOpts -> PeriodicReportRow a MixedAmount -> [[WideBuilder]] multiBalanceRowAsTableText :: ReportOpts -> PeriodicReportRow a MixedAmount -> [[WideBuilder]]
multiBalanceRowAsTableText opts = multiBalanceRowAsWbs oneLineNoCostFmt{displayColour=color_ opts} opts [] multiBalanceRowAsTableText opts = multiBalanceRowAsWbs oneLineNoCostFmt{displayColour=color_ opts} opts []

View File

@ -0,0 +1,9 @@
# Balance reports' HTML output stopped showing digit group marks in 1.25. [#2196]
<
commodity A1,000.0
2024-04-25
(revenues) A 1000.12
$ hledger -f- bal -YN -O html
> />A1,000.1</