Fix dashboard task stats using wrong table name in JOINs

The Task model uses TableName() returning "task_task" but the dashboard
queries were using "tasks.status_id" (GORM's default pluralization).
This caused the pending, completed, and overdue task counts to fail.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Trey t
2025-12-04 18:52:55 -06:00
parent 3d33a1f483
commit c7cfa9080f

View File

@@ -104,15 +104,15 @@ func (h *AdminDashboardHandler) GetStats(c *gin.Context) {
// Task stats
h.db.Model(&models.Task{}).Count(&stats.Tasks.Total)
h.db.Model(&models.Task{}).Where("is_cancelled = ? AND is_archived = ?", false, false).
Joins("JOIN task_taskstatus ON task_taskstatus.id = tasks.status_id").
Joins("JOIN task_taskstatus ON task_taskstatus.id = task_task.status_id").
Where("task_taskstatus.name IN ?", []string{"pending", "in_progress"}).
Count(&stats.Tasks.Pending)
h.db.Model(&models.Task{}).
Joins("JOIN task_taskstatus ON task_taskstatus.id = tasks.status_id").
Joins("JOIN task_taskstatus ON task_taskstatus.id = task_task.status_id").
Where("task_taskstatus.name = ?", "completed").
Count(&stats.Tasks.Completed)
h.db.Model(&models.Task{}).Where("due_date < ? AND is_cancelled = ? AND is_archived = ?", now, false, false).
Joins("JOIN task_taskstatus ON task_taskstatus.id = tasks.status_id").
Joins("JOIN task_taskstatus ON task_taskstatus.id = task_task.status_id").
Where("task_taskstatus.name NOT IN ?", []string{"completed", "cancelled"}).
Count(&stats.Tasks.Overdue)