]> _ Git - fluidbook-toolbox.git/commitdiff
wip #6184 @0.25
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 28 Jul 2023 15:43:28 +0000 (17:43 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 28 Jul 2023 15:43:28 +0000 (17:43 +0200)
resources/quizv2/js/quiz.score.js

index 4a3586634a32daf7ba87989fd6c31faae7deb768..b06e28a89452bb16c9c47c361c699b8e6b1ae5b0 100644 (file)
@@ -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
         };