Links and Other Enhancements
This commit is contained in:
36
main.py
36
main.py
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user