fix: page reload condition
This commit is contained in:
@@ -46,13 +46,14 @@ class LMSQuiz(Document):
|
|||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def quiz_summary(quiz, results):
|
def quiz_summary(quiz, results):
|
||||||
score = 0
|
score = 0
|
||||||
results = json.loads(results)
|
results = results and json.loads(results)
|
||||||
|
|
||||||
for result in results:
|
for result in results:
|
||||||
correct = result["is_correct"][0]
|
correct = result["is_correct"][0]
|
||||||
result["question"] = frappe.db.get_value("LMS Quiz Question",
|
result["question"] = frappe.db.get_value("LMS Quiz Question",
|
||||||
{"parent": quiz, "idx": result["question_index"]},
|
{"parent": quiz,
|
||||||
["question"])
|
"idx": result["question_index"]},
|
||||||
|
["question"])
|
||||||
|
|
||||||
for point in result["is_correct"]:
|
for point in result["is_correct"]:
|
||||||
correct = correct and point
|
correct = correct and point
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<div class="common-card-style text-center p-5" style="flex-direction: column;">
|
<div class="common-card-style text-center p-5" style="flex-direction: column;">
|
||||||
<div class="font-weight-bold mb-4" style="font-size: var(--text-lg);">{{ quiz.title }}</div>
|
<div class="font-weight-bold mb-4" style="font-size: var(--text-lg);">{{ quiz.title }}</div>
|
||||||
<div> {{ _("You have already exceeded the maximum number of attempts allowed for this quiz.") }} </div>
|
<div> {{ _("You have already exceeded the maximum number of attempts allowed for this quiz.") }} </div>
|
||||||
<div> {{ _("You latest score is {0}.").format(last_attempt_score) }} </div>
|
<div> {{ _("Your latest score is {0}.").format(last_attempt_score) }} </div>
|
||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<div id="quiz-title" class="hide" data-max-attempts="{{ quiz.max_attempts }}">{{ quiz.title }}</div>
|
<div id="quiz-title" class="hide" data-max-attempts="{{ quiz.max_attempts }}">{{ quiz.title }}</div>
|
||||||
|
|||||||
@@ -51,11 +51,10 @@ frappe.ready(() => {
|
|||||||
mark_active_question();
|
mark_active_question();
|
||||||
});
|
});
|
||||||
|
|
||||||
if ($("#quiz-title").data("max-attempts") && $(".active-question").length) {
|
if ($("#quiz-title").data("max-attempts")) {
|
||||||
window.addEventListener("beforeunload", (e) => {
|
window.addEventListener("beforeunload", (e) => {
|
||||||
e.preventDefault();
|
e.returnValue = "";
|
||||||
quiz_summary();
|
$(".active-question").length && quiz_summary();
|
||||||
e.returnValue = '';
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -169,7 +168,6 @@ const quiz_summary = (e=undefined) => {
|
|||||||
e && e.preventDefault();
|
e && e.preventDefault();
|
||||||
var quiz_name = $("#quiz-title").text();
|
var quiz_name = $("#quiz-title").text();
|
||||||
var total_questions = $(".question").length;
|
var total_questions = $(".question").length;
|
||||||
|
|
||||||
frappe.call({
|
frappe.call({
|
||||||
method: "lms.lms.doctype.lms_quiz.lms_quiz.quiz_summary",
|
method: "lms.lms.doctype.lms_quiz.lms_quiz.quiz_summary",
|
||||||
args: {
|
args: {
|
||||||
@@ -177,12 +175,12 @@ const quiz_summary = (e=undefined) => {
|
|||||||
"results": localStorage.getItem(quiz_name)
|
"results": localStorage.getItem(quiz_name)
|
||||||
},
|
},
|
||||||
callback: (data) => {
|
callback: (data) => {
|
||||||
var message = data.message == total_questions ? "Excellent Work" : "You were almost there."
|
var message = data.message == total_questions ? __("Excellent Work 👏") : __("Better luck next time")
|
||||||
$(".question").addClass("hide");
|
$(".question").addClass("hide");
|
||||||
$("#summary").addClass("hide");
|
$("#summary").addClass("hide");
|
||||||
$("#quiz-form").parent().prepend(
|
$("#quiz-form").parent().prepend(
|
||||||
`<div class="text-center summary"><h2>${message} 👏 </h2>
|
`<div class="text-center summary"><h2> ${message} </h2>
|
||||||
<div class="font-weight-bold">${data.message}/${total_questions} correct.</div></div>`);
|
<div class="font-weight-bold">${data.message}/${total_questions}</div></div>`);
|
||||||
$("#try-again").removeClass("hide");
|
$("#try-again").removeClass("hide");
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user