Merge pull request #1369 from FahidLatheef/fix/continue-learning

fix: fixed issue with Lesson Render for SCORM Chapters
This commit is contained in:
Jannat Patel
2025-09-02 09:48:25 +05:30
committed by GitHub
5 changed files with 35 additions and 4 deletions

View File

@@ -425,6 +425,15 @@ const setupLesson = (data) => {
})
return
}
if (data.is_scorm_package) {
router.push({
name: 'SCORMChapter',
params: {
courseName: props.courseName,
chapterName: data.chapter_name,
},
})
}
lessonProgress.value = data.membership?.progress
if (data.content) editor.value = renderEditor('editor', data.content)
if (

View File

@@ -1020,7 +1020,7 @@ def upsert_chapter(title, course, is_scorm_package, scorm_package, name=None):
chapter.save()
if is_scorm_package and not len(chapter.lessons):
add_lesson(title, chapter.name, course)
add_lesson(title, chapter.name, course, 1)
return chapter
@@ -1092,7 +1092,7 @@ def get_launch_file(extract_path):
return launch_file
def add_lesson(title, chapter, course):
def add_lesson(title, chapter, course, idx):
lesson = frappe.new_doc("Course Lesson")
lesson.update(
{
@@ -1107,6 +1107,7 @@ def add_lesson(title, chapter, course):
lesson_reference.update(
{
"lesson": lesson.name,
"idx": idx,
"parent": chapter,
"parenttype": "Course Chapter",
"parentfield": "lessons",

View File

@@ -1229,9 +1229,16 @@ def get_lesson(course, chapter, lesson):
["include_in_preview", "title", "is_scorm_package"],
as_dict=1,
)
if not lesson_details or lesson_details.is_scorm_package:
if not lesson_details:
return {}
if lesson_details.is_scorm_package:
return {
"is_scorm_package": True,
"chapter_name": chapter_name,
}
membership = get_membership(course)
course_info = frappe.db.get_value(
"LMS Course",

View File

@@ -110,4 +110,5 @@ lms.patches.v2_0.link_zoom_account_to_batch
lms.patches.v2_0.sidebar_for_certified_members
lms.patches.v2_0.move_batch_instructors_to_evaluators
lms.patches.v2_0.enable_programming_exercises_in_sidebar
lms.patches.v2_0.count_in_program
lms.patches.v2_0.count_in_program
lms.patches.v2_0.fix_scorm_lesson_reference_idx

View File

@@ -0,0 +1,13 @@
import frappe
def execute():
scorm_lessons = frappe.get_all("Course Lesson", filters={"is_scorm_package": 1}, pluck="name")
table = frappe.qb.DocType("Lesson Reference")
q = frappe.qb.from_(table).select(table.name).where(table.lesson.isin(scorm_lessons) & table.idx == 0)
wrong_idx_lesson_references = q.run(pluck=True)
for lesson_reference in wrong_idx_lesson_references:
# For SCORM, there is only 1 lesson per chapter, so directly setting 1 is fine
frappe.db.set_value("Lesson Reference", lesson_reference, "idx", 1)