diff --git a/internal/repositories/task_repo.go b/internal/repositories/task_repo.go index 6335446..a7c3967 100644 --- a/internal/repositories/task_repo.go +++ b/internal/repositories/task_repo.go @@ -635,6 +635,7 @@ func (r *TaskRepository) FindCompletionImageByID(id uint) (*models.TaskCompletio // GetOverdueCountByResidence returns a map of residence ID to overdue task count. // Uses the task.scopes package for consistent filtering logic. +// Excludes in-progress tasks to match what's displayed in the kanban overdue column. // The `now` parameter should be the start of day in the user's timezone for accurate overdue detection. func (r *TaskRepository) GetOverdueCountByResidence(residenceIDs []uint, now time.Time) (map[uint]int, error) { if len(residenceIDs) == 0 { @@ -650,7 +651,7 @@ func (r *TaskRepository) GetOverdueCountByResidence(residenceIDs []uint, now tim err := r.db.Model(&models.Task{}). Select("residence_id, COUNT(*) as count"). - Scopes(task.ScopeForResidences(residenceIDs), task.ScopeOverdue(now)). + Scopes(task.ScopeForResidences(residenceIDs), task.ScopeOverdue(now), task.ScopeNotInProgress). Group("residence_id"). Scan(&results).Error if err != nil {