From 032c7ada473896cb904b8285989e3f5f6b93e01d Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 26 Nov 2023 21:10:05 +0100 Subject: [PATCH 01/11] Remove unopened/unused h4 --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 7cee481..5bb6b2e 100644 --- a/index.html +++ b/index.html @@ -112,8 +112,8 @@
Risposte

TEST ESAME VDS - 30 domande casuali (default)

- - + + Deltaplano

From 8bf31ffa7e52b2182ca85b5a225b27c36f372141 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 26 Nov 2023 21:20:14 +0100 Subject: [PATCH 02/11] Remove the limit of 100 questions ... so that we can generate all the questions at once --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 5bb6b2e..048056e 100644 --- a/index.html +++ b/index.html @@ -79,7 +79,7 @@

- +
0
0
@@ -96,7 +96,7 @@

Risposte
- +
0corrette
0errate
From f0051c1ddc1899e1100ac785db8ebd96630f8aae Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 26 Nov 2023 21:22:08 +0100 Subject: [PATCH 03/11] Fix "Deltaplano" checkbox - Add label to make it clickable - Also respect choice in non-exam mode --- index.html | 2 +- js/main.js | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/index.html b/index.html index 048056e..ad06419 100644 --- a/index.html +++ b/index.html @@ -114,7 +114,7 @@
Risposte

TEST ESAME VDS - 30 domande casuali (default)

- Deltaplano
+

diff --git a/js/main.js b/js/main.js index 9edb558..01d2ce7 100644 --- a/js/main.js +++ b/js/main.js @@ -53,12 +53,13 @@ function esame_quiz_genera(sqldb,success){ //load data to table var nquiz = $('input[name="nquiz"]').val(); + var delta = $('#quiz_esame_delta').is(":checked"); quiz_esame_nq = nquiz; minutes = nquiz; //if 30 then use the rules for exam see (http://www.deltaclubdolada.it/wp-content/uploads/VDS_QUIZ.pdf) if (nquiz == 30){ - if ( $('input[name="deltaplano"]').is(":checked") ){ + if (delta){ var query = "select * from quiz_esame_30;"; console.log('using quiz_esame_30 view (full quiz for hangglider)'); }else{ @@ -66,7 +67,10 @@ function esame_quiz_genera(sqldb,success){ console.log('using quiz_esame_30_para view (quiz for paragliding)'); } }else{ - var query = "select * from quiz WHERE quiz_id IN (SELECT quiz_id FROM quiz ORDER BY RANDOM() LIMIT "+nquiz.toString()+") order by quiz_id;"; + var where = "quiz_id IN (SELECT quiz_id FROM quiz ORDER BY RANDOM() LIMIT "+nquiz.toString()+")"; + if (!delta) + where += " AND hang_para = \"para\""; + var query = "select * from quiz WHERE " + where + " order by quiz_id;"; } var res = sqldb.exec(query); @@ -389,7 +393,7 @@ $(document).ready( enable_quiz_buttons(); }); - $('input[name="deltaplano"]').change(function() { + $('#quiz_esame_delta').change(function() { $('#esame-tabella tbody').empty(); esame_quiz_genera(sqldb,function(){ //after loading data to table From 88dded24f2a788d2b1fa400cfdf1b931cad6085f Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 26 Nov 2023 21:37:52 +0100 Subject: [PATCH 04/11] Fix duplicate var definition of query --- js/main.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/js/main.js b/js/main.js index 01d2ce7..88e3a62 100644 --- a/js/main.js +++ b/js/main.js @@ -58,19 +58,20 @@ function esame_quiz_genera(sqldb,success){ minutes = nquiz; //if 30 then use the rules for exam see (http://www.deltaclubdolada.it/wp-content/uploads/VDS_QUIZ.pdf) + var query; if (nquiz == 30){ if (delta){ - var query = "select * from quiz_esame_30;"; + query = "select * from quiz_esame_30;"; console.log('using quiz_esame_30 view (full quiz for hangglider)'); }else{ - var query = "select * from quiz_esame_30_para;"; + query = "select * from quiz_esame_30_para;"; console.log('using quiz_esame_30_para view (quiz for paragliding)'); } }else{ - var where = "quiz_id IN (SELECT quiz_id FROM quiz ORDER BY RANDOM() LIMIT "+nquiz.toString()+")"; + let where = "quiz_id IN (SELECT quiz_id FROM quiz ORDER BY RANDOM() LIMIT "+nquiz.toString()+")"; if (!delta) where += " AND hang_para = \"para\""; - var query = "select * from quiz WHERE " + where + " order by quiz_id;"; + query = "select * from quiz WHERE " + where + " order by quiz_id;"; } var res = sqldb.exec(query); From 5ac7e9fddad95689017dc6c9ff7c3b48125cf643 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 26 Nov 2023 21:39:04 +0100 Subject: [PATCH 05/11] Also add "Deltaplano" choice for sequential tests --- index.html | 2 ++ js/main.js | 25 ++++++++++++++++++++----- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/index.html b/index.html index ad06419..6091db8 100644 --- a/index.html +++ b/index.html @@ -179,6 +179,8 @@
Risposte

TEST ESAME VDS - - Tutte le domande

+
+
diff --git a/js/main.js b/js/main.js index 88e3a62..3d3b2c2 100644 --- a/js/main.js +++ b/js/main.js @@ -101,9 +101,15 @@ function esame_quiz_genera(sqldb,success){ } -function loadQuestions(sqldb,argomento,success){ +function loadQuestions(sqldb,success){ + var argomento = $('#argomento-selezionato').text(); + var delta = $('#quiz_seq_delta').is(":checked"); + //load data to table - var query = "select * from quiz where sezione='"+argomento+"' order by quiz_id ;"; + var where = "where sezione='"+argomento+"'"; + if (!delta) + where += " AND hang_para = \"para\""; + var query = "select * from quiz "+where+" order by quiz_id ;"; //console.log(query); var res = sqldb.exec(query); @@ -403,13 +409,22 @@ $(document).ready( enable_quiz_buttons(); }); + $('#quiz_seq_delta').change(function() { + $('#argomento-tabella tbody').empty(); + loadQuestions(sqldb,function(){ + //after loading data to table + }); + reset_quiz_sequenziale(); + enable_quiz_buttons_sequenziale(); + }); + $('.argomento').on('click',function(){ $('#loader-para').fadeIn('slow'); - var argomento = $(this).find('.argomento-titolo').html(); + var argomento = $(this).find('.argomento-titolo').text(); $('#test-seq').hide(); - $('#argomento-selezionato').html( argomento ); + $('#argomento-selezionato').text( argomento ); $('#test-seq').fadeToggle(2000); $('html, body').animate({ scrollTop: $("#test-seq").offset().top @@ -417,7 +432,7 @@ $(document).ready( // quiz sequenziale $('#argomento-tabella tbody').empty(); - loadQuestions(sqldb,argomento,function(){ + loadQuestions(sqldb,function(){ //after loading data to table $('#loader-para').fadeOut('slow'); }); From b3bc2561a8d1f5b2d723b7bde6cfa78ea3e5754d Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 26 Nov 2023 21:45:24 +0100 Subject: [PATCH 06/11] Add a few missing semicolons --- js/main.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/js/main.js b/js/main.js index 3d3b2c2..86802ab 100644 --- a/js/main.js +++ b/js/main.js @@ -158,7 +158,7 @@ function printContent(el){ $('#loader-para').show(); enable_quiz_buttons_sequenziale(); setTimeout(function(){ - $('#loader-para').fadeOut('slow') + $('#loader-para').fadeOut('slow'); $("html, body").animate({ scrollTop: currentscrollpos }, 500); },2000); @@ -344,7 +344,7 @@ function enable_quiz_buttons_sequenziale(){ // doing nothing already tried. } - }) + }); } @@ -389,7 +389,7 @@ $(document).ready( enable_quiz_buttons(); }); reset_quiz_esame(); - }) + }); $('.esame_quiz_genera').on('click',function(){ $('#esame-tabella tbody').empty(); @@ -439,7 +439,7 @@ $(document).ready( reset_quiz_sequenziale(); enable_quiz_buttons_sequenziale(); //$('#argomento-tabella').DataTable(); - }) + }); }); }); @@ -554,7 +554,7 @@ function tick() { // now change the display $('.count_down').each(function(){ $(this).html(message); - }) + }); //timeDisplay.innerHTML = message; // stop if down to zero From 522b4ae949d54764982d4f717ef53c3e2d9b8b12 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 26 Nov 2023 21:51:29 +0100 Subject: [PATCH 07/11] Allow to randomize the sequential test --- index.html | 1 + js/main.js | 11 ++++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/index.html b/index.html index 6091db8..dd17a65 100644 --- a/index.html +++ b/index.html @@ -179,6 +179,7 @@
Risposte

TEST ESAME VDS - - Tutte le domande

+

diff --git a/js/main.js b/js/main.js index 86802ab..1e416ea 100644 --- a/js/main.js +++ b/js/main.js @@ -104,12 +104,14 @@ function esame_quiz_genera(sqldb,success){ function loadQuestions(sqldb,success){ var argomento = $('#argomento-selezionato').text(); var delta = $('#quiz_seq_delta').is(":checked"); + var random = $('#quiz_seq_rnd').is(":checked"); //load data to table var where = "where sezione='"+argomento+"'"; if (!delta) where += " AND hang_para = \"para\""; - var query = "select * from quiz "+where+" order by quiz_id ;"; + var order = "ORDER BY " + (random ? "RANDOM()" : "quiz_id"); + var query = "select * from quiz "+where+" "+order; //console.log(query); var res = sqldb.exec(query); @@ -409,14 +411,17 @@ $(document).ready( enable_quiz_buttons(); }); - $('#quiz_seq_delta').change(function() { + var regenerateQuizSequenziale = function() { $('#argomento-tabella tbody').empty(); loadQuestions(sqldb,function(){ //after loading data to table }); reset_quiz_sequenziale(); enable_quiz_buttons_sequenziale(); - }); + }; + + $('#quiz_seq_rnd').change(regenerateQuizSequenziale); + $('#quiz_seq_delta').change(regenerateQuizSequenziale); $('.argomento').on('click',function(){ From 926e569d8bd7e4cfbf491924c9bc60a83687bcb1 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 26 Nov 2023 22:22:42 +0100 Subject: [PATCH 08/11] Add missing wrong_answer to sequential test --- js/main.js | 1 + 1 file changed, 1 insertion(+) diff --git a/js/main.js b/js/main.js index 1e416ea..eeafd51 100644 --- a/js/main.js +++ b/js/main.js @@ -335,6 +335,7 @@ function enable_quiz_buttons_sequenziale(){ //alert('SOMARO'); $(this).removeClass('btn-light'); $(this).addClass('btn-warning'); + $(this).addClass('wrong_answer'); $('#risposte_errate').html( parseInt($('#risposte_errate').html())+1 ); $('#risposte_errate_mobile').html( parseInt($('#risposte_errate_mobile').html())+1 ); findCorrect($(this).parent().parent()); From 74d23a57ff7cf51954a09749a949c5512ad7e9d0 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 26 Nov 2023 22:33:40 +0100 Subject: [PATCH 09/11] Randomize answer order in sequential tests --- js/main.js | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/js/main.js b/js/main.js index eeafd51..1d7b05c 100644 --- a/js/main.js +++ b/js/main.js @@ -78,14 +78,14 @@ function esame_quiz_genera(sqldb,success){ tot_points = 0; $.each(res[0].values,function(key,val){ + let choices = ['
  • '+val[3].toString()+'
  • ', + '
  • '+val[4].toString()+'
  • ', + '
  • '+val[5].toString()+'
  • ']; $('#esame-tabella tbody').append('\
    \ \ \ \ '); @@ -116,14 +116,16 @@ function loadQuestions(sqldb,success){ var res = sqldb.exec(query); $.each(res[0].values,function(key,val){ + let choices = ['
  • '+val[3].toString()+'
  • ', + '
  • '+val[4].toString()+'
  • ', + '
  • '+val[5].toString()+'
  • ']; + if (random) + choices.sort(function(a, b) { return Math.random() < 0.5; }); $('#argomento-tabella tbody').append('\ \ \ \ \ '); @@ -266,7 +268,7 @@ function enable_quiz_buttons(){ if ($(this).parent().parent().attr('done')!='yes'){ //event.preventDefault(); - var index = $(this).parent('li').index() +1; + var index = $(this).parent().attr('index'); var check = $(this).parent().attr('correct'); var q_points = parseInt($(this).parent().attr('points')); //console.log(index); @@ -307,12 +309,12 @@ function findCorrect(elem){ //console.log(elem[0]); $(elem[0]).find('div.btn').removeClass('btn-light'); $(elem[0]).find('div.btn').addClass('btn-warning'); - var correct = $(elem[0]).find('li')[0].getAttribute('correct') -1; + var correct = $(elem[0]).find('li')[0].getAttribute('correct'); //console.log(correct); - $($(elem[0]).find('div.btn')[correct]).removeClass('btn-warning'); - $($(elem[0]).find('div.btn')[correct]).addClass('btn-success'); + $(elem[0]).find('li[index="'+correct+'"]').find('div.btn').removeClass('btn-warning'); + $(elem[0]).find('li[index="'+correct+'"]').find('div.btn').addClass('btn-success'); - $($(elem[0])).closest('tr').attr('print_errors','true'); + $(elem[0]).closest('tr').attr('print_errors','true'); } function enable_quiz_buttons_sequenziale(){ @@ -320,7 +322,7 @@ function enable_quiz_buttons_sequenziale(){ if ($(this).parent().parent().attr('done')!='yes'){ //event.preventDefault(); - var index = $(this).parent('li').index() +1; + var index = $(this).parent().attr('index'); var check = $(this).parent().attr('correct'); //console.log(index); //console.log(check); From 3b30db4cc5ef2ee60c11019fccc2693ffd62cd38 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 26 Nov 2023 22:38:03 +0100 Subject: [PATCH 10/11] Additional option to fully randomize exam simulation Randomizes both question order (in addition to question selection) as well as answer choice order to make the test harder. --- index.html | 1 + js/main.js | 26 +++++++++++++------------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/index.html b/index.html index dd17a65..c5c14b5 100644 --- a/index.html +++ b/index.html @@ -114,6 +114,7 @@
    Risposte

    TEST ESAME VDS - 30 domande casuali (default)

    +

    '+val[0].toString()+''+val[2].toString()+'\ -
      \ -
    1. '+val[3].toString()+'
    2. \ -
    3. '+val[4].toString()+'
    4. \ -
    5. '+val[5].toString()+'
    \ +
      '+choices.join('')+'
    \
    '+val[0].toString()+''+val[2].toString()+'\ -
      \ -
    1. '+val[3].toString()+'
    2. \ -
    3. '+val[4].toString()+'
    4. \ -
    5. '+val[5].toString()+'
    \ +
      '+choices.join('')+'
    \
    diff --git a/js/main.js b/js/main.js index 1d7b05c..b690113 100644 --- a/js/main.js +++ b/js/main.js @@ -54,24 +54,27 @@ function esame_quiz_genera(sqldb,success){ var nquiz = $('input[name="nquiz"]').val(); var delta = $('#quiz_esame_delta').is(":checked"); + var random = $('#quiz_esame_rnd').is(":checked"); quiz_esame_nq = nquiz; minutes = nquiz; //if 30 then use the rules for exam see (http://www.deltaclubdolada.it/wp-content/uploads/VDS_QUIZ.pdf) var query; if (nquiz == 30){ + let order = (random ? " ORDER BY RANDOM();" : ";"); if (delta){ - query = "select * from quiz_esame_30;"; + query = "select * from quiz_esame_30" + order; console.log('using quiz_esame_30 view (full quiz for hangglider)'); }else{ - query = "select * from quiz_esame_30_para;"; + query = "select * from quiz_esame_30_para" + order; console.log('using quiz_esame_30_para view (quiz for paragliding)'); } }else{ let where = "quiz_id IN (SELECT quiz_id FROM quiz ORDER BY RANDOM() LIMIT "+nquiz.toString()+")"; if (!delta) where += " AND hang_para = \"para\""; - query = "select * from quiz WHERE " + where + " order by quiz_id;"; + let order = (random ? "RANDOM()" : "quiz_id"); + query = "select * from quiz WHERE " + where + " ORDER BY " + order + ";"; } var res = sqldb.exec(query); @@ -81,6 +84,8 @@ function esame_quiz_genera(sqldb,success){ let choices = ['
  • '+val[3].toString()+'
  • ', '
  • '+val[4].toString()+'
  • ', '
  • '+val[5].toString()+'
  • ']; + if (random) + choices.sort(function(a, b) { return Math.random() < 0.5; }); $('#esame-tabella tbody').append('\ \ \ @@ -396,23 +401,18 @@ $(document).ready( reset_quiz_esame(); }); - $('.esame_quiz_genera').on('click',function(){ + var regenerateQuizEsame = function() { $('#esame-tabella tbody').empty(); esame_quiz_genera(sqldb,function(){ //after loading data to table }); reset_quiz_esame(); enable_quiz_buttons(); - }); + }; - $('#quiz_esame_delta').change(function() { - $('#esame-tabella tbody').empty(); - esame_quiz_genera(sqldb,function(){ - //after loading data to table - }); - reset_quiz_esame(); - enable_quiz_buttons(); - }); + $('.esame_quiz_genera').on('click', regenerateQuizEsame); + $('#quiz_esame_rnd').change(regenerateQuizEsame); + $('#quiz_esame_delta').change(regenerateQuizEsame); var regenerateQuizSequenziale = function() { $('#argomento-tabella tbody').empty(); From 4f7264932f6728c2fa7a329981ac13c8161e13a7 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 26 Nov 2023 22:42:21 +0100 Subject: [PATCH 11/11] Also reset wrong_answer when restarting --- js/main.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/js/main.js b/js/main.js index b690113..b08f3d5 100644 --- a/js/main.js +++ b/js/main.js @@ -176,6 +176,7 @@ function printContent(el){ function reset_quiz_sequenziale(){ $('#argomento-tabella li div.btn').removeClass('btn-warning'); $('#argomento-tabella li div.btn').removeClass('btn-success'); + $('#argomento-tabella li div.btn').removeClass('wrong_answer'); $('#argomento-tabella li div.btn').addClass('btn-light'); $('#risposte_corrette').html('0'); @@ -195,6 +196,7 @@ function reset_quiz_sequenziale(){ function reset_quiz_esame(){ $('#esame-tabella li div.btn').removeClass('btn-warning'); $('#esame-tabella li div.btn').removeClass('btn-success'); + $('#esame-tabella li div.btn').removeClass('wrong_answer'); $('#esame-tabella li div.btn').addClass('btn-light'); $('#risposte_corrette_esame').html('0');
    '+val[0].toString()+'