From 20449f0bc18082bfeec331c558bf4913829d7453 Mon Sep 17 00:00:00 2001 From: RaymondVerhoef Date: Wed, 3 Jun 2026 12:49:12 +0200 Subject: [PATCH] fix: gebruik theme_session_completions voor learnDone op dashboard getLearnDone was een deprecated stub die altijd false teruggaf nadat de learn_progress-collectie is gedropt. Hierdoor toonde het dashboard permanent 'Complete your theme session first', zelfs als de theme session al voltooid was, en werd cycle progress nooit opgeteld. Alle drie call-sites vervangen door getThemeSessionCompletion (de huidige bron van waarheid), en de dode stubs verwijderd uit db.js. Closes #9 Co-Authored-By: Claude Sonnet 4.6 --- src/lib/curriculumService.js | 2 +- src/lib/db.js | 7 ------- src/pages/Dashboard.jsx | 7 ++++--- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/src/lib/curriculumService.js b/src/lib/curriculumService.js index 02c1387..4ba1a45 100644 --- a/src/lib/curriculumService.js +++ b/src/lib/curriculumService.js @@ -350,7 +350,7 @@ export async function getYearProgress(userId, personalWeekNumber) { let completed = 0; for (let w = cycleStartWeek; w <= cycleEndWeek; w++) { - const done = await db.getLearnDone(userId, w); + const done = await db.getThemeSessionCompletion(userId, w); if (done) completed++; } diff --git a/src/lib/db.js b/src/lib/db.js index 0ea6b2b..64e482e 100644 --- a/src/lib/db.js +++ b/src/lib/db.js @@ -326,13 +326,6 @@ export function setCachedQuiz(userId, weekNumber, quiz) { return Promise.resolve(quiz); } -// ── Learn Progress (DEPRECATED — collection dropped) ──────────────────────── - -/** @deprecated learn_progress collection has been dropped. */ -export async function getLearnDone() { return false; } -/** @deprecated learn_progress collection has been dropped. */ -export async function setLearnDone() { return null; } - // ── Theme Sessions ────────────────────────────────────────────────────────── /** diff --git a/src/pages/Dashboard.jsx b/src/pages/Dashboard.jsx index 1f903dd..7a4c44d 100644 --- a/src/pages/Dashboard.jsx +++ b/src/pages/Dashboard.jsx @@ -31,13 +31,14 @@ const Dashboard = () => { if (!currentUser) return; const load = async () => { - const [topic, learnDone, testResult, allUsers, leaderboard] = await Promise.all([ + const [topic, learnCompletion, testResult, allUsers, leaderboard] = await Promise.all([ getAssignedTopic(currentUser.id, weekNumber), - db.getLearnDone(currentUser.id, weekNumber), + db.getThemeSessionCompletion(currentUser.id, weekNumber), db.getQuizResult(currentUser.id, weekNumber), db.getTeamMembers(), db.getLeaderboard(), ]); + const learnDone = !!learnCompletion; const nonAdminIds = allUsers.filter(u => u.role !== 'admin').map(u => u.id); const filtered = leaderboard.filter(u => nonAdminIds.includes(u.user_id)); @@ -48,7 +49,7 @@ const Dashboard = () => { const activity = []; for (let w = weekNumber; w >= Math.max(1, weekNumber - 3); w--) { const [pastLearn, pastTest, pastTopic] = await Promise.all([ - db.getLearnDone(currentUser.id, w), + db.getThemeSessionCompletion(currentUser.id, w), db.getQuizResult(currentUser.id, w), getAssignedTopic(currentUser.id, w), ]);