fix(reports): freeze first excel column
This commit is contained in:
@@ -72,6 +72,10 @@ def _autosize_columns(worksheet) -> None:
|
|||||||
worksheet.column_dimensions[get_column_letter(column_index)].width = min(max(width + 4, 12), 30)
|
worksheet.column_dimensions[get_column_letter(column_index)].width = min(max(width + 4, 12), 30)
|
||||||
|
|
||||||
|
|
||||||
|
def _freeze_first_column(worksheet) -> None:
|
||||||
|
worksheet.freeze_panes = "B1"
|
||||||
|
|
||||||
|
|
||||||
def _money_label(locale: ExportLocale, income_totals: list[dict]) -> str:
|
def _money_label(locale: ExportLocale, income_totals: list[dict]) -> str:
|
||||||
return locale.format_money_label(income_totals)
|
return locale.format_money_label(income_totals)
|
||||||
|
|
||||||
@@ -722,6 +726,7 @@ def _render_all_users_overall_excel_sheet(
|
|||||||
) -> None:
|
) -> None:
|
||||||
if locale.is_rtl:
|
if locale.is_rtl:
|
||||||
worksheet.sheet_view.rightToLeft = True
|
worksheet.sheet_view.rightToLeft = True
|
||||||
|
_freeze_first_column(worksheet)
|
||||||
|
|
||||||
scope = report_data["scope"]
|
scope = report_data["scope"]
|
||||||
summary = report_data["summary"]
|
summary = report_data["summary"]
|
||||||
@@ -935,9 +940,7 @@ def _render_excel_sheet(
|
|||||||
) -> None:
|
) -> None:
|
||||||
if locale.is_rtl:
|
if locale.is_rtl:
|
||||||
worksheet.sheet_view.rightToLeft = True
|
worksheet.sheet_view.rightToLeft = True
|
||||||
worksheet.freeze_panes = "E4"
|
_freeze_first_column(worksheet)
|
||||||
else:
|
|
||||||
worksheet.freeze_panes = "A4"
|
|
||||||
_append_meta_block(worksheet, locale=locale, report_data=report_data)
|
_append_meta_block(worksheet, locale=locale, report_data=report_data)
|
||||||
if report_data.get("user_summaries"):
|
if report_data.get("user_summaries"):
|
||||||
worksheet.append([])
|
worksheet.append([])
|
||||||
|
|||||||
@@ -196,6 +196,7 @@ class ReportExporterTests(TestCase):
|
|||||||
summary_sheet = workbook[workbook.sheetnames[0]]
|
summary_sheet = workbook[workbook.sheetnames[0]]
|
||||||
summary_values = list(summary_sheet.iter_rows(values_only=True))
|
summary_values = list(summary_sheet.iter_rows(values_only=True))
|
||||||
|
|
||||||
|
self.assertEqual(summary_sheet.freeze_panes, "B1")
|
||||||
self.assertEqual(summary_sheet["A1"].value, "Workspace Report")
|
self.assertEqual(summary_sheet["A1"].value, "Workspace Report")
|
||||||
self.assertEqual(summary_sheet["B1"].value, "Exports")
|
self.assertEqual(summary_sheet["B1"].value, "Exports")
|
||||||
self.assertEqual(summary_sheet["A15"].value, "Users Summary")
|
self.assertEqual(summary_sheet["A15"].value, "Users Summary")
|
||||||
@@ -242,6 +243,7 @@ class ReportExporterTests(TestCase):
|
|||||||
user_sheet = workbook[workbook.sheetnames[1]]
|
user_sheet = workbook[workbook.sheetnames[1]]
|
||||||
user_values = list(user_sheet.iter_rows(values_only=True))
|
user_values = list(user_sheet.iter_rows(values_only=True))
|
||||||
|
|
||||||
|
self.assertEqual(user_sheet.freeze_panes, "B1")
|
||||||
daily_header = next(row[:6] for row in user_values if row and "Date" in row)
|
daily_header = next(row[:6] for row in user_values if row and "Date" in row)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
daily_header,
|
daily_header,
|
||||||
|
|||||||
Reference in New Issue
Block a user