projects
/
qomet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
'update'
[qomet.git]
/
public
/
javascripts
/
components
/
statements.js
diff --git
a/public/javascripts/components/statements.js
b/public/javascripts/components/statements.js
index
86138c0
..
0b8ef65
100644
(file)
--- a/
public/javascripts/components/statements.js
+++ b/
public/javascripts/components/statements.js
@@
-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)
--> 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>
</params>
+ <result>
+ let M = math.matrix([[7, x], [y, -3]]);
+ return math.det(M);
+ </result>
<div>Calculer le déterminant de
<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 ?)
* ...
+ 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
};
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
// 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);
});
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);
// 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,
{
"class": {
"question": true,
-
"depth" + depth
: true,
+
["depth" + depth]
: true,
},
},
questionContent
},
},
questionContent
@@
-171,7
+175,7
@@
Vue.component("statements", {
"questionGroup": true,
"hide": this.display == "one" && this.iidx != i,
},
"questionGroup": true,
"hide": this.display == "one" && this.iidx != i,
},
- }
+ }
,
qgDom
);
});
qgDom
);
});