fix: page reload condition
This commit is contained in:
@@ -46,13 +46,14 @@ class LMSQuiz(Document):
|
||||
@frappe.whitelist()
|
||||
def quiz_summary(quiz, results):
|
||||
score = 0
|
||||
results = json.loads(results)
|
||||
results = results and json.loads(results)
|
||||
|
||||
for result in results:
|
||||
correct = result["is_correct"][0]
|
||||
result["question"] = frappe.db.get_value("LMS Quiz Question",
|
||||
{"parent": quiz, "idx": result["question_index"]},
|
||||
["question"])
|
||||
{"parent": quiz,
|
||||
"idx": result["question_index"]},
|
||||
["question"])
|
||||
|
||||
for point in result["is_correct"]:
|
||||
correct = correct and point
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<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> {{ _("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>
|
||||
{% else %}
|
||||
<div id="quiz-title" class="hide" data-max-attempts="{{ quiz.max_attempts }}">{{ quiz.title }}</div>
|
||||
|
||||
@@ -51,11 +51,10 @@ frappe.ready(() => {
|
||||
mark_active_question();
|
||||
});
|
||||
|
||||
if ($("#quiz-title").data("max-attempts") && $(".active-question").length) {
|
||||
if ($("#quiz-title").data("max-attempts")) {
|
||||
window.addEventListener("beforeunload", (e) => {
|
||||
e.preventDefault();
|
||||
quiz_summary();
|
||||
e.returnValue = '';
|
||||
e.returnValue = "";
|
||||
$(".active-question").length && quiz_summary();
|
||||
});
|
||||
}
|
||||
});
|
||||
@@ -169,7 +168,6 @@ const quiz_summary = (e=undefined) => {
|
||||
e && e.preventDefault();
|
||||
var quiz_name = $("#quiz-title").text();
|
||||
var total_questions = $(".question").length;
|
||||
|
||||
frappe.call({
|
||||
method: "lms.lms.doctype.lms_quiz.lms_quiz.quiz_summary",
|
||||
args: {
|
||||
@@ -177,12 +175,12 @@ const quiz_summary = (e=undefined) => {
|
||||
"results": localStorage.getItem(quiz_name)
|
||||
},
|
||||
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");
|
||||
$("#summary").addClass("hide");
|
||||
$("#quiz-form").parent().prepend(
|
||||
`<div class="text-center summary"><h2>${message} 👏 </h2>
|
||||
<div class="font-weight-bold">${data.message}/${total_questions} correct.</div></div>`);
|
||||
`<div class="text-center summary"><h2> ${message} </h2>
|
||||
<div class="font-weight-bold">${data.message}/${total_questions}</div></div>`);
|
||||
$("#try-again").removeClass("hide");
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user