diff --git a/lms/lms/doctype/lms_course/lms_course.py b/lms/lms/doctype/lms_course/lms_course.py index 5989f9d1..21bf0093 100644 --- a/lms/lms/doctype/lms_course/lms_course.py +++ b/lms/lms/doctype/lms_course/lms_course.py @@ -306,3 +306,43 @@ def save_lesson( lesson_reference.save(ignore_permissions=True) return doc.name + + +@frappe.whitelist() +def reorder_lesson(old_chapter, old_lesson_array, new_chapter, new_lesson_array): + if old_chapter == new_chapter: + sort_lessons(new_chapter, new_lesson_array) + else: + sort_lessons(old_chapter, old_lesson_array) + sort_lessons(new_chapter, new_lesson_array) + + +def sort_lessons(chapter, lesson_array): + lesson_array = json.loads(lesson_array) + for les in lesson_array: + ref = frappe.get_all("Lesson Reference", {"lesson": les}, ["name", "idx"]) + if ref: + frappe.db.set_value( + "Lesson Reference", + ref[0].name, + { + "parent": chapter, + "idx": lesson_array.index(les) + 1, + }, + ) + + +@frappe.whitelist() +def reorder_chapter(chapter_array): + chapter_array = json.loads(chapter_array) + + for chap in chapter_array: + ref = frappe.get_all("Chapter Reference", {"chapter": chap}, ["name", "idx"]) + if ref: + frappe.db.set_value( + "Chapter Reference", + ref[0].name, + { + "idx": chapter_array.index(chap) + 1, + }, + ) diff --git a/lms/lms/widgets/CourseOutline.html b/lms/lms/widgets/CourseOutline.html index 56eef3a4..d42a6da7 100644 --- a/lms/lms/widgets/CourseOutline.html +++ b/lms/lms/widgets/CourseOutline.html @@ -9,7 +9,7 @@ {% endif %} {% if course.name and (course.edit_mode or chapters | length) %} -