From ef86dfd3fe6105d647e9f1cb0557c03c96e23c7c Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Fri, 28 Jul 2023 17:43:28 +0200 Subject: [PATCH] wip #6184 @0.25 --- resources/quizv2/js/quiz.score.js | 41 +++++++++++++++++-------------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/resources/quizv2/js/quiz.score.js b/resources/quizv2/js/quiz.score.js index 4a3586634..b06e28a89 100644 --- a/resources/quizv2/js/quiz.score.js +++ b/resources/quizv2/js/quiz.score.js @@ -25,26 +25,17 @@ QuizScore.prototype = { checkQuestion: function (questionIndex) { let question = this.quiz.questions[questionIndex]; - var a = []; - var ok = true; - var count = $(this).attr('data-count') == '1'; - var log = { + let a = []; + let ok = true; + let count = $(this).attr('data-count') == '1'; + let log = { 'count': count, }; - if (question.multiple) { - // Le score minimal est le score que l'utilisateur doit atteindre sur une question pour que sa réponse soit considérée - var min_score = parseInt(question.min_score); - if (min_score === 0) { - min_score = 0; - $.each(question.answers, function (answerIndex, answer) { - if (answer.correct) { - min_score += answer.score; - } - }); - } - var this_score = 0; + let answersStatus=[]; + if (question.multiple) { + let min_score = this.getMinScore(question); ok = this_score >= min_score; log.answer = a; @@ -56,7 +47,7 @@ QuizScore.prototype = { ok = null; } - this.questionStatus[questionIndex] = ok; + this.questionStatus[questionIndex] = {'status':ok,'answers':answersStatus}; if (ok && count) { this.score++; @@ -67,6 +58,20 @@ QuizScore.prototype = { this.logQuestions[questionIndex] = log; }, + getMinScore: function (question) { + // Le score minimal est le score que l'utilisateur doit atteindre sur une question pour que sa réponse soit considérée + let min_score = parseInt(question.min_score); + if (min_score === 0) { + min_score = 0; + $.each(question.answers, function (answerIndex, answer) { + if (answer.correct) { + min_score += answer.score; + } + }); + } + return min_score; + }, + updateScore: function () { this.score = 0; this.logQuestions = []; @@ -77,7 +82,7 @@ QuizScore.prototype = { $this.checkQuestion(qn); }); - var state = { + let state = { q: this.lastAnsweredQuestion + 1, a: this.answers }; -- 2.39.5