Hi,
I've tested the scorm after setting 'SCORM tracking mode' to minimal (both minimal values) and I get the same problem. If I enter the scorm and visit all pages, I get a score value different from 100 and the status value is 'passed'. If I enter the scorm again and I visit a number of pages less than the total, I get another score value and the status value is 'incomplete'.
It's a very strange result.
If you change the xttracking_scorm1.2.js and change the getSuccessStatus() function like this
function getSuccessStatus()
{
if (this.lo_type != "pages only")
{
if (this.getScaledScore() > this.lo_passed)
{
return "passed";
}
else
{
return "failed";
}
}
else
{
if (this.nrpages <= this.pages_visited)
{
//return "passed"; //previous value
return "completed";
}
else if(this.pages_visited)
{
return 'incomplete';
}
}
return "";
}
you get a completed status if you visit all the pages in one attempt and a score value of the number of visited pages. But if you attempt the scorm again and visit less pages than the total you get a score value equal to the number of pages visited this attempt and a incomplete status. I think that it should be readed the score stored in the LMS when entering the scorm in order to make the package to work properly. What do you think?
Well. I've readed the previous visted pages when entering the scorm by reading the 'cmi.core.score.raw', but it doesn't work again. I've made the following changes in order to do so
function XTInitialise()
{
doLMSInitialize();
this.pages_visited = doLMSGetValue('cmi.core.score.raw'); //changed to read the number of pages visited
}
and
function ScormTrackingState()
{
this.currentid = "";
this.currentpageid = "";
this.trackingmode = "full";
this.scoremode = "last";
this.nrpages = 0;
//this.pages_visited=0; //changed for the line below
if (this.pages_visited==null) this.pages_visited=0;
...
It reads the pages visited before without problems, but it doesn't work because I think that the identity of the previous visited pages should be stored in the LMS somehow. I think that it could be stored in the variable "cmi.suspend_data" as it appears that you are not using. Am I wrong?
Thanks in advance.
Rosa