fix(reports): localize and group exported income values
This commit is contained in:
@@ -80,19 +80,19 @@ def _append_meta_block(worksheet, *, locale: ExportLocale, report_data: dict) ->
|
||||
scope = report_data["scope"]
|
||||
summary = report_data["summary"]
|
||||
|
||||
worksheet.append([locale.t("report_title"), scope["workspace"]["name"]])
|
||||
worksheet.append([locale.t("workspace"), scope["workspace"]["name"]])
|
||||
worksheet.append([locale.t("period"), locale.period_label(scope["period"])])
|
||||
worksheet.append([locale.t("from_date"), locale.format_date(scope["from_date"], ascii_digits=True)])
|
||||
worksheet.append([locale.t("to_date"), locale.format_date(scope["to_date"], ascii_digits=True)])
|
||||
worksheet.append([locale.t("user"), user_label(scope.get("user"), locale, ascii_digits=True)])
|
||||
worksheet.append([locale.t("generated_at"), locale.format_date(datetime.now().date(), ascii_digits=True)])
|
||||
worksheet.append(_rtl_row(locale, [locale.t("report_title"), scope["workspace"]["name"]]))
|
||||
worksheet.append(_rtl_row(locale, [locale.t("workspace"), scope["workspace"]["name"]]))
|
||||
worksheet.append(_rtl_row(locale, [locale.t("period"), locale.period_label(scope["period"])]))
|
||||
worksheet.append(_rtl_row(locale, [locale.t("from_date"), locale.format_date(scope["from_date"], ascii_digits=True)]))
|
||||
worksheet.append(_rtl_row(locale, [locale.t("to_date"), locale.format_date(scope["to_date"], ascii_digits=True)]))
|
||||
worksheet.append(_rtl_row(locale, [locale.t("user"), user_label(scope.get("user"), locale, ascii_digits=True)]))
|
||||
worksheet.append(_rtl_row(locale, [locale.t("generated_at"), locale.format_date(datetime.now().date(), ascii_digits=True)]))
|
||||
worksheet.append([])
|
||||
worksheet.append([locale.t("summary")])
|
||||
worksheet.append([locale.t("total_hours"), locale.format_duration(summary["total_duration"], ascii_digits=True)])
|
||||
worksheet.append([locale.t("billable_hours"), locale.format_duration(summary["billable_duration"], ascii_digits=True)])
|
||||
worksheet.append([locale.t("non_billable_hours"), locale.format_duration(summary["non_billable_duration"], ascii_digits=True)])
|
||||
worksheet.append([locale.t("income"), _money_label_excel(locale, summary["income_totals"])])
|
||||
worksheet.append(_rtl_row(locale, [locale.t("total_hours"), locale.format_duration(summary["total_duration"], ascii_digits=True)]))
|
||||
worksheet.append(_rtl_row(locale, [locale.t("billable_hours"), locale.format_duration(summary["billable_duration"], ascii_digits=True)]))
|
||||
worksheet.append(_rtl_row(locale, [locale.t("non_billable_hours"), locale.format_duration(summary["non_billable_duration"], ascii_digits=True)]))
|
||||
worksheet.append(_rtl_row(locale, [locale.t("income"), _money_label_excel(locale, summary["income_totals"])]))
|
||||
|
||||
for row_index in range(1, worksheet.max_row + 1):
|
||||
first_cell = worksheet.cell(row=row_index, column=1)
|
||||
@@ -196,6 +196,9 @@ def _append_breakdown_table(worksheet, *, locale: ExportLocale, title_key: str,
|
||||
def _render_excel_sheet(worksheet, *, locale: ExportLocale, report_data: dict) -> None:
|
||||
if locale.is_rtl:
|
||||
worksheet.sheet_view.rightToLeft = True
|
||||
worksheet.freeze_panes = "E4"
|
||||
else:
|
||||
worksheet.freeze_panes = "A4"
|
||||
_append_meta_block(worksheet, locale=locale, report_data=report_data)
|
||||
_append_daily_table(worksheet, locale=locale, report_data=report_data)
|
||||
_append_breakdown_table(worksheet, locale=locale, title_key="clients", rows=report_data["clients"])
|
||||
|
||||
Reference in New Issue
Block a user