fix: misc issues
This commit is contained in:
@@ -1,10 +1,11 @@
|
||||
import frappe
|
||||
from frappe.desk.page.setup_wizard.setup_wizard import add_all_roles_to
|
||||
|
||||
from lms.lms.api import give_dicussions_permission
|
||||
|
||||
def after_install():
|
||||
add_pages_to_nav()
|
||||
create_batch_source()
|
||||
give_dicussions_permission()
|
||||
|
||||
|
||||
def after_sync():
|
||||
|
||||
@@ -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)
|
||||
@@ -1,10 +1,33 @@
|
||||
# Copyright (c) 2021, FOSS United and contributors
|
||||
# For license information, please see license.txt
|
||||
|
||||
# import frappe
|
||||
import frappe
|
||||
from frappe.model.document import Document
|
||||
from frappe.utils.telemetry import capture
|
||||
from lms.lms.utils import get_course_progress
|
||||
from lms.lms.api import update_course_statistics
|
||||
|
||||
|
||||
class CourseChapter(Document):
|
||||
pass
|
||||
|
||||
def on_update(self):
|
||||
print("on_update")
|
||||
self.recalculate_course_progress()
|
||||
update_course_statistics()
|
||||
|
||||
def recalculate_course_progress(self):
|
||||
previous_lessons = self.get_doc_before_save().as_dict().lessons
|
||||
current_lessons = self.lessons
|
||||
|
||||
if previous_lessons != current_lessons:
|
||||
enrolled_members = frappe.get_all("LMS Enrollment", {
|
||||
"course": self.course
|
||||
}, ["member", "name"])
|
||||
print("enrolled_members", enrolled_members)
|
||||
for enrollment in enrolled_members:
|
||||
print(self.course, enrollment.member)
|
||||
new_progress = get_course_progress(self.course, enrollment.member)
|
||||
print("new_progress", new_progress)
|
||||
frappe.db.set_value("LMS Enrollment", enrollment.name, "progress", new_progress)
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -57,12 +57,15 @@ class LMSQuiz(Document):
|
||||
types = [question.type for question in self.questions]
|
||||
types = set(types)
|
||||
|
||||
if "Open Ended" in types and len(types) > 1:
|
||||
frappe.throw(
|
||||
_(
|
||||
"If you want open ended questions then make sure each question in the quiz is of open ended type."
|
||||
if "Open Ended" in types:
|
||||
if len(types) > 1:
|
||||
frappe.throw(
|
||||
_(
|
||||
"If you want open ended questions then make sure each question in the quiz is of open ended type."
|
||||
)
|
||||
)
|
||||
)
|
||||
else:
|
||||
self.show_answers = 0
|
||||
|
||||
def autoname(self):
|
||||
if not self.name:
|
||||
|
||||
@@ -503,11 +503,6 @@ def first_lesson_exists(course):
|
||||
return True
|
||||
|
||||
|
||||
def redirect_to_courses_list():
|
||||
frappe.local.flags.redirect_location = "/lms/courses"
|
||||
raise frappe.Redirect
|
||||
|
||||
|
||||
def has_course_instructor_role(member=None):
|
||||
return frappe.db.get_value(
|
||||
"Has Role",
|
||||
@@ -1153,6 +1148,9 @@ def get_lesson(course, chapter, lesson):
|
||||
lesson_details = frappe.db.get_value(
|
||||
"Course Lesson", lesson_name, ["include_in_preview", "title"], as_dict=1
|
||||
)
|
||||
if not lesson_details:
|
||||
return {}
|
||||
|
||||
membership = get_membership(course)
|
||||
course_title = frappe.db.get_value("LMS Course", course, "title")
|
||||
if (
|
||||
|
||||
@@ -91,4 +91,5 @@ lms.patches.v2_0.fix_progress_percentage
|
||||
lms.patches.v2_0.add_discussion_topic_titles
|
||||
lms.patches.v2_0.sidebar_settings
|
||||
lms.patches.v2_0.delete_certificate_request_notification #18-09-2024
|
||||
lms.patches.v2_0.add_course_statistics #21-10-2024
|
||||
lms.patches.v2_0.add_course_statistics #21-10-2024
|
||||
lms.patches.v2_0.give_discussions_permissions
|
||||
@@ -1,6 +1,5 @@
|
||||
import frappe
|
||||
from lms.lms.api import update_course_statistics
|
||||
|
||||
|
||||
def execute():
|
||||
update_course_statistics()
|
||||
|
||||
5
lms/patches/v2_0/give_discussions_permissions.py
Normal file
5
lms/patches/v2_0/give_discussions_permissions.py
Normal file
@@ -0,0 +1,5 @@
|
||||
import frappe
|
||||
from lms.lms.api import give_dicussions_permission
|
||||
|
||||
def execute():
|
||||
give_dicussions_permission()
|
||||
Reference in New Issue
Block a user