mirror of
https://github.com/maziggy/bambuddy.git
synced 2026-10-20 17:50:12 +02:00
Fix debug logging banner showing negative timer duration
The debug logging banner displayed a negative elapsed time (e.g. "-60m -59s") equal to the server's UTC offset. datetime.now() stored local time without a timezone indicator, but the frontend's parseUTCDate() interpreted it as UTC. Use datetime.now(tz=timezone.utc) consistently for storing, parsing, and comparing the enabled_at timestamp.
This commit is contained in:
@@ -10,7 +10,7 @@ import os
|
||||
import platform
|
||||
import re
|
||||
import zipfile
|
||||
from datetime import datetime
|
||||
from datetime import datetime, timezone
|
||||
from pathlib import Path
|
||||
|
||||
from fastapi import APIRouter, HTTPException, Query
|
||||
@@ -62,7 +62,13 @@ async def _get_debug_setting(db: AsyncSession) -> tuple[bool, datetime | None]:
|
||||
enabled_at = None
|
||||
if enabled_at_setting and enabled_at_setting.value:
|
||||
try:
|
||||
<<<<<<< HEAD
|
||||
enabled_at = datetime.fromisoformat(enabled_at_setting.value).replace(tzinfo=None)
|
||||
=======
|
||||
enabled_at = datetime.fromisoformat(enabled_at_setting.value)
|
||||
if enabled_at.tzinfo is None:
|
||||
enabled_at = enabled_at.replace(tzinfo=timezone.utc)
|
||||
>>>>>>> 63208cf ( Fix debug logging banner showing negative timer duration)
|
||||
except ValueError:
|
||||
pass # Ignore malformed timestamp; enabled_at stays None
|
||||
|
||||
@@ -80,7 +86,7 @@ async def _set_debug_setting(db: AsyncSession, enabled: bool) -> datetime | None
|
||||
db.add(Settings(key="debug_logging_enabled", value=str(enabled).lower()))
|
||||
|
||||
# Update enabled_at timestamp
|
||||
enabled_at = datetime.now() if enabled else None
|
||||
enabled_at = datetime.now(tz=timezone.utc) if enabled else None
|
||||
result = await db.execute(select(Settings).where(Settings.key == "debug_logging_enabled_at"))
|
||||
at_setting = result.scalar_one_or_none()
|
||||
if at_setting:
|
||||
@@ -127,7 +133,7 @@ async def get_debug_logging_state(
|
||||
|
||||
duration = None
|
||||
if enabled and enabled_at:
|
||||
duration = int((datetime.now() - enabled_at).total_seconds())
|
||||
duration = int((datetime.now(tz=timezone.utc) - enabled_at).total_seconds())
|
||||
|
||||
return DebugLoggingState(
|
||||
enabled=enabled,
|
||||
@@ -149,7 +155,7 @@ async def toggle_debug_logging(
|
||||
|
||||
duration = None
|
||||
if toggle.enabled and enabled_at:
|
||||
duration = int((datetime.now() - enabled_at).total_seconds())
|
||||
duration = int((datetime.now(tz=timezone.utc) - enabled_at).total_seconds())
|
||||
|
||||
return DebugLoggingState(
|
||||
enabled=toggle.enabled,
|
||||
|
||||
Reference in New Issue
Block a user