From 38e6d38a2fab7afdc3d93fd6075b069788addbbf Mon Sep 17 00:00:00 2001 From: Martin Hohenberg Date: Sat, 20 Jun 2026 19:16:19 +0200 Subject: [PATCH] Show open Vikunja task count as badge on To-Do sidebar link Fetched async via /api/todos/count so it doesn't block page render. Badge hidden when count is zero. Co-Authored-By: Claude Sonnet 4.6 --- app/routers/todos.py | 6 ++++++ app/templates/base.html | 11 ++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/app/routers/todos.py b/app/routers/todos.py index 90c6062..0822a09 100644 --- a/app/routers/todos.py +++ b/app/routers/todos.py @@ -4,6 +4,12 @@ from app.vikunja import create_task, delete_task, get_tasks, update_task router = APIRouter(prefix="/todos", tags=["todos"]) +@router.get("/count") +def count_todos(): + tasks = get_tasks() + return {"open": sum(1 for t in tasks if not t.get("done"))} + + @router.get("/") def list_todos(): return get_tasks() diff --git a/app/templates/base.html b/app/templates/base.html index 89eca37..82e6273 100644 --- a/app/templates/base.html +++ b/app/templates/base.html @@ -60,7 +60,7 @@
  • Printers
  • Jobs
  • Brackets
  • -
  • To-Do
  • +
  • To-Do
  • Pricing
  • @@ -71,5 +71,14 @@ +