fix(dashboard): update sync card after completion + use Bucharest timezone

Sync card was showing previous run data after sync completed because the
last_run query excluded the current run_id even after it finished. Now only
excludes during active running state.

All datetime.now() and SQLite datetime('now') replaced with Europe/Bucharest
timezone to fix times displayed 2 hours behind (was using UTC).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude Agent
2026-03-17 13:02:18 +00:00
parent f5ef9e0811
commit f74322beab
3 changed files with 34 additions and 16 deletions

View File

@@ -1,8 +1,16 @@
import json
import logging
from datetime import datetime
from zoneinfo import ZoneInfo
from ..database import get_sqlite, get_sqlite_sync
_tz_bucharest = ZoneInfo("Europe/Bucharest")
def _now_str():
"""Return current Bucharest time as ISO string."""
return datetime.now(_tz_bucharest).replace(tzinfo=None).isoformat()
logger = logging.getLogger(__name__)
@@ -12,8 +20,8 @@ async def create_sync_run(run_id: str, json_files: int = 0):
try:
await db.execute("""
INSERT INTO sync_runs (run_id, started_at, status, json_files)
VALUES (?, datetime('now'), 'running', ?)
""", (run_id, json_files))
VALUES (?, ?, 'running', ?)
""", (run_id, _now_str(), json_files))
await db.commit()
finally:
await db.close()
@@ -28,7 +36,7 @@ async def update_sync_run(run_id: str, status: str, total_orders: int = 0,
try:
await db.execute("""
UPDATE sync_runs SET
finished_at = datetime('now'),
finished_at = ?,
status = ?,
total_orders = ?,
imported = ?,
@@ -38,7 +46,7 @@ async def update_sync_run(run_id: str, status: str, total_orders: int = 0,
already_imported = ?,
new_imported = ?
WHERE run_id = ?
""", (status, total_orders, imported, skipped, errors, error_message,
""", (_now_str(), status, total_orders, imported, skipped, errors, error_message,
already_imported, new_imported, run_id))
await db.commit()
finally: