Intentos repetidos en SCORM

Intentos repetidos en SCORM

de Juan Francisco Ocal -
Número de respuestas: 0

Muy buenas,

moodle 2.6+

He estado viendo varios hilos en todo el foro relacionados sin respuestas a preguntas parecidas...

Tengo todos los cursos en formato SCORM y funcionan bien, salvo la sorpresa que me he llevado. El caso es que después de hacer los dos intentos que te deja el examen (test.html) dentro del paquete SCORM, cuando sales y entras de nuevo tienes un sólo intento marcado, entras de nuevo a la actividad, vas al test, y ya no te deja hacerlo dos veces, pero sí una, por lo que el alumno puede hacer el test las veces que quiera.

He pensado en quitar todos los test de los SCORMS y hacerlos desde la propia plataforma, pero son varios cientos de unidades, cada una con su test... Así que estoy tirando este último cartucho a ver si alguien me hace ver la luz, puede que sea de config. del moodle o de programación del javascript del test.html, que es donde se crea la variable "intento" y que se almacena en la variable de moodle. Todo lo demás funciona bien.

El caso es que nunca llega a marcar el intento nº 2, cuando sales y vuelves a la actividad tienes un intento y te queda el otro, y así siempre.

Pongo la parte del código de test.html relacionada (var intento y funciones relacionadas):


///////////// Se crea la matriz de preguntas y respuestas, y después: ////////////////

.

.

.

function repetir()

{

  var intento = doLMSGetValue( "cmi.comments");

  if(intento=="")

  {

  doLMSInitialize();

  }

  if(intento<2)

  { 

    showQuestions();

    randomquestions();

    document.getElementById("Brepeat").style.visibility="hidden";               

  } 

}


function calcScore2(){

  computeTime();  // the student has stopped here.  

  document.getElementById("quizForm0").submitB.disabled = true; 

  getAnswer();  

  calcRawScore(); 

  actualScore = Math.round(rawScore / numQuestions * 100);

  doLMSSetValue( "cmi.core.score.raw", actualScore );

  //Actualizamos el numero de intentos

  var intento = doLMSGetValue( "cmi.comments");

  if (intento!="")

  {doLMSSetValue( "cmi.comments",parseInt(intento)+1);}

  else

  doLMSSetValue( "cmi.comments","1"); 

  var mode = doLMSGetValue( "cmi.core.lesson_mode" ); 

  //if ( mode != "review"  &&  mode != "browse" ){

  if ( actualScore < 60 )

  {

    doLMSSetValue( "cmi.core.lesson_status", "failed" );

  }

  else 

  {

    doLMSSetValue( "cmi.core.lesson_status", "passed" );

  } 

  doLMSSetValue( "cmi.core.exit", "" );

  //}   

  exitPageStatus = true;    

  doLMSCommit();  

  if(doLMSFinish())

  alert("La nota es de " + actualScore + "%");

}

else

{

  alert("Ha habido un problema y no se ha podido procesar la nota");

}

  if (intento=="")

  {intento="0";}

  return (parseInt(intento)+1).toString();

}


function preLoad()

{

  contador=0;

  //comprobamos primero que tiene  marcadas todas las respuestas

  for(var i=0;i<numQuestions;i++)

  {

    for(var j=0;j<4;j++)

    {

      if(document.forms["quizForm0"]["key"+i][j].checked==true)

      {

        contador++;

      }

    } 

  }

  if(contador==numQuestions)

  {

    var intento = calcScore2();

    if ((intento!="") && (intento<2))

    {document.getElementById("Brepeat").style.visibility="visible";}

  }

  else

  {alert("Debes contestar a todas las preguntas");}

}

.

.

.

.

///////// LUEGO ESTÁ EL FORMULARIO, Y DESPUÉS: ///////////////


function inicio(intento) {

                        switch (intento) {

                            case "1":

                                alert("Ya has realizado el test 1 vez, si lo deseas puedes volver a repetirlo");

                                document.getElementById("Brepeat").style.visibility = "visible";

                                Desactiva();

                                break;

                            case "2":

                                alert("Ya has realizado el test 2 veces.");

                                Desactiva();

                                break;

                            default:

                                randomquestions();

                                break;

                        }

                    }

.

.

.

/////////////////////////// FIN DEL CÓDIGO //////////////

Gracias por la atención, un saludo.


Juan Fco.


Promedio de valoraciones: -