diff --git a/lms/lms/api.py b/lms/lms/api.py index eb106503..89b9756e 100644 --- a/lms/lms/api.py +++ b/lms/lms/api.py @@ -1056,11 +1056,24 @@ def delete_chapter(chapter): if chapterInfo.is_scorm_package: delete_scorm_package(chapterInfo.scorm_package_path) + course = frappe.db.get_value("Chapter Reference", {"chapter": chapter}, "parent") + frappe.db.delete("Chapter Reference", {"chapter": chapter}) frappe.db.delete("Lesson Reference", {"parent": chapter}) frappe.db.delete("Course Lesson", {"chapter": chapter}) frappe.db.delete("Course Chapter", chapter) + # reset chapter reference index after deletion + if course: + chapters = frappe.get_all( + "Chapter Reference", filters={"parent": course}, fields=["name"], order_by="idx asc" + ) + + i = 1 + for chapter in chapters: + frappe.db.set_value("Chapter Reference", chapter.name, "idx", i) + i += 1 + def delete_scorm_package(scorm_package_path): scorm_package_path = frappe.get_site_path("public", scorm_package_path[1:])