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.
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user