fix(reports): use persian month buckets in chart data

This commit is contained in:
2026-04-27 16:43:54 +03:30
parent e26263e93f
commit 208e81139b

View File

@@ -357,6 +357,9 @@ def _entry_payload(entry: TimeEntry) -> dict:
def _bucket_label(filters: ReportFilters, bucket_date: date) -> str:
if filters.period in {PERIOD_THIS_WEEK, PERIOD_THIS_MONTH, PERIOD_CUSTOM}:
return bucket_date.isoformat()
if filters.language == "fa":
persian_date = jdatetime.date.fromgregorian(date=bucket_date)
return f"{persian_date.year:04d}-{persian_date.month:02d}"
return bucket_date.strftime("%Y-%m")
@@ -364,6 +367,9 @@ def _bucket_key(filters: ReportFilters, local_dt: datetime) -> tuple[str, date]:
if filters.period in {PERIOD_THIS_WEEK, PERIOD_THIS_MONTH, PERIOD_CUSTOM}:
bucket_date = local_dt.date()
return bucket_date.isoformat(), bucket_date
if filters.language == "fa":
persian_date = jdatetime.date.fromgregorian(date=local_dt.date())
return f"{persian_date.year:04d}-{persian_date.month:02d}", local_dt.date()
bucket_date = date(local_dt.year, local_dt.month, 1)
return bucket_date.strftime("%Y-%m"), bucket_date