From 297ffa517126a3006c155b312324c82d3eaa1880 Mon Sep 17 00:00:00 2001 From: raizasafeel <89463672+raizasafeel@users.noreply.github.com> Date: Wed, 21 Jan 2026 14:37:10 +0530 Subject: [PATCH] fix(chapter): index recalculation on deletion --- lms/lms/api.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lms/lms/api.py b/lms/lms/api.py index 984ee519..f392b30b 100644 --- a/lms/lms/api.py +++ b/lms/lms/api.py @@ -1063,11 +1063,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:])