Add MOT/insurance renewal hints, table service card, and favicon

- Renewal tracking: compute due/overdue status from the most recent
  mot/insurance event (renewal_months, renewal_due_soon_days settings),
  surfaced on the service card and dashboard.
- Service-status card metrics now render as a two-column label/value
  table with row separators instead of wrapping auto-fill grid cells.
- Add a bicycle favicon (favicon.svg) to base + login templates.

Co-Authored-By: opencode <opencode@users.noreply.github.com>
This commit is contained in:
2026-09-10 10:01:17 +01:00
co-authored by opencode
parent 99c15e23bb
commit aced0a1a3b
10 changed files with 225 additions and 1 deletions
+9
View File
@@ -31,6 +31,13 @@ class Settings(BaseSettings):
# Service hint: flag a bike as "book soon" when it is this close to due.
service_due_soon_miles: int = 200
# Renewal hint: flag MOT/insurance as "due soon" when it falls due within
# this many days (default 60 days).
renewal_due_soon_days: int = 60
# Months a logged MOT/insurance event is valid before it falls due.
renewal_months: int = 12
# Event types (preset)
event_types: list[str] = [
"service",
@@ -39,6 +46,8 @@ class Settings(BaseSettings):
"chain",
"brake",
"repair",
"mot",
"insurance",
"other",
]