fix: include overdue tasks in today summary
ci / gitleaks (push) Successful in 56s
ci / docker (push) Successful in 3m51s

This commit is contained in:
2026-09-08 15:28:45 +08:00
parent d9c16908e9
commit 7f4ba7779a
2 changed files with 12 additions and 3 deletions
+9 -2
View File
@@ -377,10 +377,17 @@ async function loadTodayTaskSummary() {
const data = await api(`/tasks?${params}`) const data = await api(`/tasks?${params}`)
return Number(data.total ?? data.items?.length ?? 0) return Number(data.total ?? data.items?.length ?? 0)
} }
const [open, completed] = await Promise.all([summaryTotal(false), summaryTotal(true)]) const overdueTotal = async () => {
const params = new URLSearchParams({ page: '1', page_size: '1' })
params.set('due_to', isoAtLocalDayOffset(0))
params.set('completed', 'false')
const data = await api(`/tasks?${params}`)
return Number(data.total ?? data.items?.length ?? 0)
}
const [open, completed, overdue] = await Promise.all([summaryTotal(false), summaryTotal(true), overdueTotal()])
if (token !== todaySummaryLoadToken || activeView.value !== 'today') return if (token !== todaySummaryLoadToken || activeView.value !== 'today') return
todayTaskCompleted.value = completed todayTaskCompleted.value = completed
todayTaskTotal.value = open + completed todayTaskTotal.value = overdue + open + completed
} catch { /* 概览统计失败不阻断今天页 */ } } catch { /* 概览统计失败不阻断今天页 */ }
} }
async function loadOverdueTasks() { async function loadOverdueTasks() {
+3 -1
View File
@@ -164,7 +164,9 @@ describe('task and habit row decoration', () => {
expect(app).toContain('async function loadTodayTaskSummary()') expect(app).toContain('async function loadTodayTaskSummary()')
expect(app).toContain('const token = ++todaySummaryLoadToken') expect(app).toContain('const token = ++todaySummaryLoadToken')
expect(app).toContain("params.set('completed', String(completed))") expect(app).toContain("params.set('completed', String(completed))")
expect(app).toContain('await Promise.all([summaryTotal(false), summaryTotal(true)])') expect(app).toContain('const overdueTotal = async () => {')
expect(app).toContain('await Promise.all([summaryTotal(false), summaryTotal(true), overdueTotal()])')
expect(app).toContain('todayTaskTotal.value = overdue + open + completed')
expect(app).toContain("if (activeView.value === 'today') void loadTodayTaskSummary()") expect(app).toContain("if (activeView.value === 'today') void loadTodayTaskSummary()")
expect(app).toContain('aria-controls="today-tasks"') expect(app).toContain('aria-controls="today-tasks"')
expect(app).toContain('aria-controls="today-habits"') expect(app).toContain('aria-controls="today-habits"')