From c7cfa9080f096726f173fe86620a0a3e9414c579 Mon Sep 17 00:00:00 2001 From: Trey t Date: Thu, 4 Dec 2025 18:52:55 -0600 Subject: [PATCH] Fix dashboard task stats using wrong table name in JOINs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- internal/admin/handlers/dashboard_handler.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/admin/handlers/dashboard_handler.go b/internal/admin/handlers/dashboard_handler.go index a69d1d5..9cc1bff 100644 --- a/internal/admin/handlers/dashboard_handler.go +++ b/internal/admin/handlers/dashboard_handler.go @@ -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)