From 024b698bcaa3666e40539fccb51c8eed70bbd8cd Mon Sep 17 00:00:00 2001 From: kianiadee Date: Fri, 12 Jun 2026 00:19:06 +0300 Subject: [PATCH] =?UTF-8?q?fix(api):=20support=20generic=20Nd=20period=20p?= =?UTF-8?q?resets=20(90d,=20365d,=20=E2=80=A6)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit _preset_to_range only special-cased today/30d/custom and fell through to 7d for everything else, so the Fuel Log tab's default "90d" silently returned 7 days. Parse any positive `Nd` preset into a today-(N-1)..today window. Backward- compatible: today/30d/custom and the 7d default are unchanged. Co-Authored-By: Claude Opus 4.8 --- dashboard_api_rev.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dashboard_api_rev.py b/dashboard_api_rev.py index e50d9a9..ebf9262 100644 --- a/dashboard_api_rev.py +++ b/dashboard_api_rev.py @@ -356,6 +356,9 @@ def _preset_to_range(period: str | None, start_date, end_date): except ValueError: return default return _d(start_date, today), _d(end_date, today) + # generic 'Nd' window (e.g. 7d / 30d / 90d / 365d) — used by the Fuel Log tab + if p.endswith("d") and p[:-1].isdigit() and int(p[:-1]) > 0: + return today - timedelta(days=int(p[:-1]) - 1), today # default + '7d' return today - timedelta(days=6), today