fix: completion state for student in lms

This commit is contained in:
Rotimi Best
2024-07-16 10:20:56 +01:00
parent 05fcbbb3e2
commit 5a7cd8a34a
2 changed files with 16 additions and 7 deletions
@@ -179,7 +179,16 @@ export function fetchLesson(lessonId: Lesson['id']) {
return supabase
.from('lesson')
.select(
`id, note, videos, slide_url, call_url, totalExercises:exercise(count), totalComments:lesson_comment(count), lesson_completion(id, profile_id, is_complete), lesson_language(id, content, locale)`
`id,
note,
videos,
slide_url,
call_url,
totalExercises:exercise(count),
totalComments:lesson_comment(count),
lesson_completion(id, profile_id, is_complete),
lesson_language(id, content, locale)
`
)
.eq('id', lessonId)
.single();
@@ -31,6 +31,7 @@
import { goto } from '$app/navigation';
import { COURSE_TYPE } from '$lib/utils/types';
import { VARIANTS } from '$lib/components/PrimaryButton/constants.js';
import { profile } from '$lib/utils/store/user.js';
export let data;
@@ -103,20 +104,19 @@
}
}
function hasUserCompletedLesson(completion) {
return completion?.find((c) => c.profile_id === $profile.id);
}
function findFirstIncompleteLesson() {
console.log({ lessons: $lessons });
return $lessons.find(
(lesson) =>
lesson.lesson_completion &&
lesson.lesson_completion.length === 0 &&
lesson.is_unlocked === true
(lesson) => !hasUserCompletedLesson(lesson.lesson_completion) && lesson.is_unlocked === true
);
}
function onNextQuery(lessons) {
if (!isFetching && lessons.length > 0) {
const incompleteLesson = findFirstIncompleteLesson();
console.log({ incompleteLesson });
if (incompleteLesson) {
goto(`/courses/${data.courseId}/lessons/${incompleteLesson.id}`);