Links and Other Enhancements

This commit is contained in:
2026-03-02 19:55:04 +00:00
parent cf84d6d2dd
commit 0ed86ee2dc
24 changed files with 475 additions and 153 deletions

36
main.py
View File

@@ -155,12 +155,48 @@ async def dashboard(request: Request):
"""))
stats = dict(result.first()._mapping)
# Overdue projects (target_date in the past)
result = await db.execute(text("""
SELECT p.id, p.name, p.priority, p.target_date, p.status,
d.name as domain_name, d.color as domain_color,
count(t.id) FILTER (WHERE t.is_deleted = false) as task_count,
count(t.id) FILTER (WHERE t.is_deleted = false AND t.status = 'done') as done_count
FROM projects p
LEFT JOIN domains d ON p.domain_id = d.id
LEFT JOIN tasks t ON t.project_id = p.id
WHERE p.is_deleted = false AND p.status IN ('active', 'on_hold')
AND p.target_date < CURRENT_DATE
GROUP BY p.id, d.name, d.color
ORDER BY p.target_date ASC
LIMIT 10
"""))
overdue_projects = [dict(r._mapping) for r in result]
# Upcoming project deadlines (next 30 days)
result = await db.execute(text("""
SELECT p.id, p.name, p.priority, p.target_date, p.status,
d.name as domain_name, d.color as domain_color,
count(t.id) FILTER (WHERE t.is_deleted = false) as task_count,
count(t.id) FILTER (WHERE t.is_deleted = false AND t.status = 'done') as done_count
FROM projects p
LEFT JOIN domains d ON p.domain_id = d.id
LEFT JOIN tasks t ON t.project_id = p.id
WHERE p.is_deleted = false AND p.status IN ('active', 'on_hold')
AND p.target_date >= CURRENT_DATE AND p.target_date <= CURRENT_DATE + INTERVAL '30 days'
GROUP BY p.id, d.name, d.color
ORDER BY p.target_date ASC
LIMIT 10
"""))
upcoming_projects = [dict(r._mapping) for r in result]
return templates.TemplateResponse("dashboard.html", {
"request": request,
"sidebar": sidebar,
"focus_items": focus_items,
"overdue_tasks": overdue_tasks,
"upcoming_tasks": upcoming_tasks,
"overdue_projects": overdue_projects,
"upcoming_projects": upcoming_projects,
"stats": stats,
"page_title": "Dashboard",
"active_nav": "dashboard",