Moodle 2.2 Scorm stop passing score in review mode

Feb 10, 2012

I need some help guys

I have a Scorm 2004 (Size of resume data means I need 2004) articulate course loaded into Moodle 2.2, if I take the course it is marked as complete, incomplete correctly.

The problem comes after the course is marked as complete, if I take the course again and leave before completing the course the course is marked as incomplete, if I then go in and do it again and complete it, it is marked as complete ad infinitum

Moodle is correctly setting the course into review mode, is there anyway to manually edit the Scorm to prevent it to send a score/status  when the course is in review mode?

16 Replies
Justin Wilcox

Hi Phil. If you set up your quiz so that a score can only improve on subsequent attempts, this may resolve the issue you are experiencing.

1. Open up the Configuration.js file.
2. Change this:

var SCORE_CAN_ONLY_IMPROVE = false;

To this:

var SCORE_CAN_ONLY_IMPROVE = true;

3. Save the file.
4. Re-upload your course to the LMS

By making the change above, this should cause the score to only improve on subsequent attempts.

=======

If you continue to have issues, you may need to update some code in the lms.js file located in the lms folder of your published course. Look for the following function in the lms.js file:

function SetStatus(strStatus)

In that function, you will see the following lines:

case "incomplete":
lmsAPI.ResetStatus();
break;

To prevent the course from ever being set to incomplete, simply remove those three lines of text, save the file, and re-upload to your LMS.

Phil Mayor

Hi Justin, thanks for this, I did try this one and it didnt work also moodle seemed to throw a fit every now and then

I may have solved it, and it may have been user error, it seems in moodle if you run a scorm complete it, then reopen, it is forced into review mode, but if you dont open a new session it is the same instance and overwrites the prervious complete status, doesnt seem right to me.

The above changes wont affect it because it is the same instance just rewritten, having a look at this tomorrow I have some ideas on how to work around this

Thanks again

Phil

Phil Mayor

This is the issue I think, and I cannot find a work around

"Some scorm packages are intelligent about new attempts, many are not. What this means is that if the learner re-enters an existing attempt, if the SCORM content does not have internal logic to avoid overwriting cmi.core.lesson_status and cmi.core.score.raw, they can be overwritten, even though the attempt was 'completed' or 'passed'. "

If the user fails to enter a new session then they can overwrite their previous session even though it was set as complete, anyway round this as force this issue?

Dan Marsden

sure - you can change the datamodel stuff in

/mod/scorm/datamodel/scorm_12.js

you could increase the CMIString4096:
CMIString4096 = '^[\\u0000-\\uffff]{0,4096}$';

replace it with something like this:
CMIString4096 = '^[\\u0000-\\uffff]{0,40960000}$';

or slightly better - copy the vars from scorm_13.js
var CMIString64000 = '^[\\u0000-\\uFFFF]{0,64000}$';

and then tell suspend_data to use that format

Then make sure you check using Firebug or something similar to make sure you haven't introduced a js error

Dan Marsden

if you look in scorm_13.js.php you will see a line that starts with 'cmi.suspend_data' - near the end of that line you will see 'format':CMIString64000'

if you look in scorm_12.js.php you will see a similar line that uses "format':CMIString4096"

if you copy this line from the 13.js.php into the 12.js.php

var CMIString64000 = '^[\\u0000-\\uFFFF]{0,64000}$';

then change the line for cmi.suspend_data to use CMIString64000 instead of CMIString4096 - that should work.

make more sense - or clear as mud?

Phil Mayor

I expect Dan is still subscribed, in later version of Moodle this should be fixed in review mode the score should not get overwritten.  The UI issue I find in Moodle is that starting a new course is not that obvious to the user so they may not seat  new session.  Also if they choose not to resume the user may expect to be able to improve their score.

Dan Marsden

in Moodle 2.7 we added a new setting called "Enable SCORM 1.2 standard mode" 

if you go:
Site administration > Plugins > Activity Modules > SCORM

find that setting and un-tick the box and it will increase the data limits.

I do occasionally wonder if we should remove the setting and always allow the bigger limits but we still need to be able to tick the box in those complicated RFP's to say that Moodle complies with the SCORM 1.2 spec.

bit more explanation on this setting here:
https://moodle.org/mod/forum/discuss.php?d=282656#p1211522

 

 

 

 

This discussion is closed. You can start a new discussion or contact Articulate Support.