'update'
[qomet.git] / public / javascripts / components / statements.js
index 86138c0..5373e89 100644 (file)
@@ -6,13 +6,15 @@ NOTE: questions can contain parameterized exercises (how ?
 --> write javascript script (OK, users trusted ? ==> safe mode possible if public website)
 Imaginary example: (using math.js)
        <params> (avant l'exo)
-       x: math.random()
-       y: math.random()
-       M: math.matrix([[7, x], [y, -3]]);
-       res: math.det(M)
+       const x = math.random();
+       const y = math.random();
        </params>
+       <result>
+       let M = math.matrix([[7, x], [y, -3]]);
+       return math.det(M);
+       </result>
        <div>Calculer le déterminant de 
-       $$\begin{matrix}7 & x\\y & -3\end{matrix}$$</div>
+       $$\begin{matrix}7 & £x£\\£y£ & -3\end{matrix}$$</div>
        * ...
 
 + fixed + question time (syntax ?)
@@ -32,7 +34,7 @@ Vue.component("statements", {
                        displayStyle: "compact", //or "all": all on same page
                        parameters: 0, //TODO: DO NOT re-draw parameters for already answered questions
                };
-       }
+       },
        // Full questions tree is rendered, but some parts hidden depending on display settings
        render(h) {
                // Prepare questions groups, ordered
@@ -41,7 +43,9 @@ Vue.component("statements", {
                        const dotPos = q.index.indexOf(".");
                        return dotPos === -1 ? q.index : q.index.substring(0,dotPos);
                });
-               let domTree = questionGroups.map( (qg,i) => {
+               let domTree = Object.keys(questionGroups).map( idx => {
+                       let qg = questionGroups[idx];
+                       const i = parseInt(idx);
                        // Re-order questions 1.1.1 then 1.1.2 then...
                        const orderedQg = qg.sort( (a,b) => {
                                let aParts = a.split('.').map(Number);
@@ -158,7 +162,7 @@ Vue.component("statements", {
                                        {
                                                "class": {
                                                        "question": true,
-                                                       "depth" + depth: true,
+                                                       ["depth" + depth]: true,
                                                },
                                        },
                                        questionContent
@@ -171,7 +175,7 @@ Vue.component("statements", {
                                                "questionGroup": true,
                                                "hide": this.display == "one" && this.iidx != i,
                                        },
-                               }
+                               },
                                qgDom
                        );
                });