fix: misc issues

This commit is contained in:
Jannat Patel
2024-11-06 19:22:20 +05:30
parent 8004982e2e
commit 38e6e4345f
13 changed files with 185 additions and 39 deletions

View File

@@ -490,7 +490,15 @@ def delete_sidebar_item(webpage):
@frappe.whitelist()
def delete_lesson(lesson, chapter):
frappe.db.delete("Lesson Reference", {"parent": chapter, "lesson": lesson})
# Delete Reference
chapter = frappe.get_doc("Course Chapter", chapter)
chapter.lessons = [row for row in chapter.lessons if row.lesson != lesson]
chapter.save()
# Delete progress
frappe.db.delete("LMS Course Progress", {"lesson": lesson})
# Delete Lesson
frappe.db.delete("Course Lesson", lesson)
@@ -802,3 +810,71 @@ def get_announcements(batch):
],
order_by="communication_date desc",
)
@frappe.whitelist()
def delete_course(course):
chapters = frappe.get_all("Course Chapter", {
"course": course
}, pluck="name")
chapter_references = frappe.get_all("Chapter Reference", {
"parent": course
}, pluck="name")
for chapter in chapters:
lessons = frappe.get_all("Course Lesson", {
"chapter": chapter
}, pluck="name")
lesson_references = frappe.get_all("Lesson Reference", {
"parent": chapter
}, pluck="name")
for lesson in lesson_references:
frappe.delete_doc("Lesson Reference", lesson)
for lesson in lessons:
frappe.db.delete("LMS Course Progress", {"lesson": lesson})
topics = frappe.get_all("Discussion Topic", {
"reference_doctype": "Course Lesson",
"reference_docname": lesson
}, pluck="name")
for topic in topics:
frappe.db.delete("Discussion Reply", {
"topic": topic
})
frappe.db.delete("Discussion Topic", topic)
frappe.delete_doc("Course Lesson", lesson)
for chapter in chapter_references:
frappe.delete_doc("Chapter Reference", chapter)
for chapter in chapters:
frappe.delete_doc("Course Chapter", chapter)
frappe.db.delete("LMS Enrollment", {"course": course})
frappe.delete_doc("LMS Course", course)
def give_dicussions_permission():
doctypes = ["Discussion Topic", "Discussion Reply"]
roles = ["LMS Student", "Course Creator", "Moderator", "Batch Evaluator"]
for doctype in doctypes:
for role in roles:
if not frappe.db.exists("Custom DocPerm", {"parent": doctype, "role": role}):
frappe.get_doc(
{
"doctype": "Custom DocPerm",
"parent": doctype,
"role": role,
"read": 1,
"write": 1,
"create": 1,
"delete": 1,
}
).save(ignore_permissions=True)