fix: page reload condition

This commit is contained in:
Jannat Patel
2022-05-18 10:47:49 +05:30
parent e465ad58ca
commit af21d33165
3 changed files with 11 additions and 12 deletions

View File

@@ -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

View File

@@ -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>

View File

@@ -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");
}
})