feat: quiz validations and marks

This commit is contained in:
Jannat Patel
2023-10-16 19:52:36 +05:30
parent 174ea1ddd4
commit 12bec14c92
10 changed files with 140 additions and 47 deletions

View File

@@ -0,0 +1,16 @@
import frappe
def execute():
questions = frappe.get_all("LMS Quiz Question", pluck="name")
for question in questions:
frappe.db.set_value("LMS Quiz Question", question, "marks", 1)
quizzes = frappe.get_all("LMS Quiz", pluck="name")
for quiz in quizzes:
questions_count = frappe.db.count("LMS Quiz Question", {"parent": quiz})
frappe.db.set_value(
"LMS Quiz", quiz, {"total_marks": questions_count, "passing_percentage": 100}
)

View File

@@ -3,31 +3,21 @@ import frappe
def execute():
frappe.reload_doc("lms", "doctype", "lms_question")
frappe.reload_doc("lms", "doctype", "lms_quiz_question")
fields = ["name", "question", "type", "multiple"]
for num in range(1, 5):
fields.append(f"option_{num}")
fields.append(f"is_correct_{num}")
fields.append(f"explanation_{num}")
fields.append(f"possibility_{num}")
questions = frappe.get_all(
"LMS Quiz Question",
fields=[
"name",
"question",
"type",
"multiple",
"option_1",
"is_correct_1",
"explanation_1",
"option_2",
"is_correct_2",
"explanation_2",
"option_3",
"is_correct_3",
"explanation_3",
"option_4",
"is_correct_4",
"explanation_4",
],
fields=fields,
)
for question in questions:
print(question.name)
doc = frappe.new_doc("LMS Question")
doc.update(
{
@@ -44,9 +34,10 @@ def execute():
f"option_{num}": question[f"option_{num}"],
f"is_correct_{num}": question[f"is_correct_{num}"],
f"explanation_{num}": question[f"explanation_{num}"],
f"possibility_{num}": question[f"possibility_{num}"],
}
)
doc.save()
print(doc.name)
frappe.db.set_value("LMS Quiz Question", question.name, "question", doc.name)