fix: patched quiz submission data

This commit is contained in:
Jannat Patel
2024-11-27 22:47:45 +05:30
parent a64b0f734a
commit 0e6df83961
7 changed files with 107 additions and 39 deletions

View File

@@ -134,7 +134,6 @@ def quiz_summary(quiz, results):
result["marks"] = marks
score += marks
del result["question_name"]
else:
result["is_correct"] = 0
is_open_ended = True
@@ -146,6 +145,7 @@ def quiz_summary(quiz, results):
submission = frappe.new_doc("LMS Quiz Submission")
# Score and percentage are calculated by the controller function
print(results)
submission.update(
{
"doctype": "LMS Quiz Submission",

View File

@@ -858,7 +858,8 @@ def get_telemetry_boot_info():
@frappe.whitelist()
def is_onboarding_complete():
if not has_course_moderator_role():
return {"is_onboarded": False}
return {"is_onboarded": True}
course_created = frappe.db.a_row_exists("LMS Course")
chapter_created = frappe.db.a_row_exists("Course Chapter")
lesson_created = frappe.db.a_row_exists("Course Lesson")

View File

@@ -94,4 +94,5 @@ 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.give_discussions_permissions
lms.patches.v2_0.delete_web_forms
lms.patches.v2_0.update_desk_access_for_lms_roles
lms.patches.v2_0.update_desk_access_for_lms_roles
lms.patches.v2_0.update_quiz_submission_data

View File

@@ -0,0 +1,47 @@
import frappe
def execute():
set_question_data()
set_submission_data()
def set_question_data():
questions = frappe.get_all("LMS Quiz Question", fields=["name", "question"])
for question in questions:
question_doc = frappe.db.get_value(
"LMS Question", question.question, ["question", "type"], as_dict=1
)
frappe.db.set_value(
"LMS Quiz Question",
question.name,
{"question_detail": question_doc.question, "type": question_doc.type},
)
def set_submission_data():
submissions = frappe.get_all("LMS Quiz Submission", fields=["name", "quiz"])
for submission in submissions:
quiz_title = frappe.db.get_value("LMS Quiz", submission.quiz, "title")
frappe.db.set_value("LMS Quiz Submission", submission.name, "quiz_title", quiz_title)
questions = frappe.get_all(
"LMS Quiz Result", filters={"parent": submission.name}, fields=["question_name"]
)
for question in questions:
if question.question_name:
marks_out_of = frappe.db.get_value(
"LMS Quiz Question",
{"parent": submission.quiz, "question": question.question_name},
["marks"],
)
frappe.db.set_value(
"LMS Quiz Result",
{"parent": submission.name, "question_name": question.question_name},
"marks_out_of",
marks_out_of,
)