Moodle 2.2 Scorm stop passing score in review mode
Feb 10, 2012
By
Phil Mayor
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
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.
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
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?
Hey, Phil. I really don't know how you would be able to workaround that scenario as it sounds like they move the course to the transcript when you exit the session, right? So that's why when you log into moodle again and start a new session you are finally in review mode so you can't overwrite it.
Worse than that, the course gets switched to review mode, but even in review mode you can overwrite the previous score, this is giving me a headache!
Logging out or back in has no effect, looks like we are going back to 1.2
no surprises here that you're having issues with SCORM 2004 in Moodle - as you know we don't officially support 2004 in Moodle yet as it isn't complete.
2.2 has a new option "force new attempt" - I wonder if you set that does it help to prevent entering into review mode and trigger a new attempt instead?
Dan, thanks, tried force new attempt and it does work, we really wanted to be able to resume.
We may have to go back to 1.2 because that works great, the only problem we have with this is the resume data length, is there any unofficial way (hack) to increase this, or we may need to decrease the amount of data we send
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
Sweet, Dan. Thanks for posting this!
Dan thats great, how do you "tell suspend data to use that format"? Sorry think I should have posted this in the moodle forums
Thanks for all the help so far
Phil
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?
Makes sense, thanks we got it all working this morning, thanks for the help, this was the only reason for using 2004, so we are busy republishing all our courses
Thanks
Phil
Is this still the fix, 4years later? :) I've encountered the same issue you described Phil, and am excited to find a fix - curious if things have changed when using Storyline2 and Moodle 2.7?
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.
Hi, Kathleen -- I see that Phil is assisting you, but if you decide to reach out to Dan as well, you would be welcome to use the 'Contact Me' link on his profile page in the event that he is no subscribed.
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.