fix: server odometer stat shows 0 when no odometer data exists

COALESCE(MAX(odometer), 0) returned 0 when all tracking rows have NULL
odometer (expected before the car is connected — PID 0xA6 likely unsupported
on 2013 Yaris). Now returns NULL which the overview JS renders as '—'.

Co-authored-by: Copilot <[email protected]>
This commit is contained in:
Mathieu Moran
2026-08-10 05:58:22 -04:00
co-authored by Copilot
parent a7ab088cf5
commit 8f8c03a26a
2 changed files with 3 additions and 3 deletions
+2 -2
View File
@@ -379,7 +379,7 @@ def get_overview_stats(device_id):
(SELECT COALESCE(SUM(duration_s), 0) FROM trips WHERE device_id = %s) AS total_s,
(SELECT COALESCE(MAX(max_speed_kmh), 0) FROM trips WHERE device_id = %s) AS top_speed,
(SELECT COUNT(*) FROM dashcam_files WHERE device_id = %s) AS video_count,
(SELECT COALESCE(MAX(odometer), 0) FROM tracking_points WHERE device_id = %s) AS odometer_km
(SELECT MAX(odometer) FROM tracking_points WHERE device_id = %s AND odometer IS NOT NULL) AS odometer_km
""",
(device_id,) * 6,
)
@@ -390,5 +390,5 @@ def get_overview_stats(device_id):
"total_drive_time_s": int(r[2]),
"top_speed_kmh": float(r[3]),
"video_count": r[4],
"odometer_km": float(r[5]),
"odometer_km": float(r[5]) if r[5] is not None else None,
}