From 53c77f90705f81b55576bd25777050b2185ec299 Mon Sep 17 00:00:00 2001 From: Adarsh Singh Date: Sat, 24 Jan 2026 17:04:38 +0530 Subject: [PATCH] fix: reindex lessons after deletion to prevent stale form state When a lesson was deleted, the remaining lessons' idx values were not resequenced. This caused Add Lesson to navigate to an existing lesson instead of creating a new one, showing stale data in the form. --- lms/lms/api.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/lms/lms/api.py b/lms/lms/api.py index d3f55c17..24c4c8fa 100644 --- a/lms/lms/api.py +++ b/lms/lms/api.py @@ -476,15 +476,17 @@ def delete_sidebar_item(webpage): @frappe.whitelist() def delete_lesson(lesson, chapter): - # Delete Reference - chapter = frappe.get_doc("Course Chapter", chapter) - chapter.lessons = [row for row in chapter.lessons if row.lesson != lesson] - chapter.save() + lessons = frappe.get_all( + "Lesson Reference", + {"parent": chapter}, + pluck="lesson", + order_by="idx", + ) + lessons.remove(lesson) + frappe.db.delete("Lesson Reference", {"parent": chapter, "lesson": lesson}) + update_index(lessons, chapter) - # Delete progress frappe.db.delete("LMS Course Progress", {"lesson": lesson}) - - # Delete Lesson frappe.db.delete("Course Lesson", lesson)