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
+2
View File
@@ -230,6 +230,8 @@ templates.env.filters["money"] = lambda v: f"{v:,}" if v is not None else ""
templates.env.globals["event_types"] = get_settings().event_types
templates.env.globals["status_class"] = svc.status_class
templates.env.globals["status_text"] = svc.status_text
templates.env.globals["renewal_class"] = svc.renewal_class
templates.env.globals["renewal_text"] = svc.renewal_text
@app.middleware("http")