Moodle

Moodle should support meaningful recording and review of SCORM data

Details

  • Type: Bug Bug
  • Status: Closed Closed
  • Priority: Minor Minor
  • Resolution: Fixed
  • Affects Version/s: 1.6.3
  • Fix Version/s: 2.0
  • Component/s: SCORM
  • Labels:
    None
  • Affected Branches:
    MOODLE_16_STABLE
  • Fixed Branches:
    MOODLE_20_STABLE

Description

The cmi data model defines over a hundred elements that an SCO can pass to an LMS through the SCO API. Moodle captures this information and stores it in the scorm_scoes_track table. However (except for the grade and other very basic tracking parameters), Moodle does not provide an interface for teachers to review such data. Instead, various workarounds must be employed, such as having the SCO send e-mail to the teacher (!!). This is clearly not an acceptable situation. This problem can only be solved by adding functionality to Moodle.

Note that there is an IEEE standard (1484.11.3) that specifies an XML schema for this data, so at the very least it would be nice if Moodle could capture the data in an XML instance and then make that available.

Issue Links

Activity

Hide
John Isner added a comment -

Version 6.1.9.1 of Hot Potatoes adds SCORM 1.2 support. According to Martin Holmes (in discussion http://moodle.org/mod/forum/discuss.php?d=62388#281850) "The exercises now report detailed information on each item (where there are multiple items, ... along with details of what responses the student made, both incorrect and correct." Getting this functionality to work under Moodle will require changes to the SCORM module of the kind described above.

Show
John Isner added a comment - Version 6.1.9.1 of Hot Potatoes adds SCORM 1.2 support. According to Martin Holmes (in discussion http://moodle.org/mod/forum/discuss.php?d=62388#281850) "The exercises now report detailed information on each item (where there are multiple items, ... along with details of what responses the student made, both incorrect and correct." Getting this functionality to work under Moodle will require changes to the SCORM module of the kind described above.
Hide
Martin Dougiamas added a comment -

Assigning to Sadiel for prioritising and fixing.

Show
Martin Dougiamas added a comment - Assigning to Sadiel for prioritising and fixing.
Hide
Martin Dougiamas added a comment -

Assigning to Jesús Rincón to organise and start working on.

Show
Martin Dougiamas added a comment - Assigning to Jesús Rincón to organise and start working on.
Hide
Christian Bokhove added a comment -

I think this in essence is the same as http://moodle.org/mod/forum/discuss.php?d=104375

Show
Christian Bokhove added a comment - I think this in essence is the same as http://moodle.org/mod/forum/discuss.php?d=104375
Hide
Christian Bokhove added a comment -

With changes to (version 1.9.2+), this is a dirty hack for showing suspend_data. I would be glad to have a "cleaner" one. Working: it adds a $u variabele passing the user to the SCORM module. Giving a user ID shows the SCORM module as the user left it last. This is added to a results link on the report page.
loadSCO.php
api.php
player.php
report.php
locallib.php
/datamodels/scorm_12.js.php

1. loadSCO.php
$u parameter added
8: $u = optional_param('u', $USER->id, PARAM_INT); // user ID
59, 62 not $USER->id but only $u

2. api.php
$u parameter added
11: $u = optional_param('u', $USER->id, PARAM_INT); // user ID
39 not $USER->id but only $u

3. player.php
$u parameter added
(around 17): $u = optional_param('u', $USER->id, PARAM_INT); // user ID
(around 108): $userstr = '&u='.$u;
(after $orgstr = '&currentorg='.$currentorg
(around 130): <script language="JavaScript" type="text/javascript" src="api.php?id=<?php echo $cm->id.$scoidstr.$modestr.$attemptstr.$userstr ?>"></script>
should become
<script language="JavaScript" type="text/javascript" src="api.php?id=<?php echo $cm->id.$scoidstr.$modestr.$attemptstr.$userstr ?>"></script>

And also all calls to api.php and loadSCO.php could get an extra .$userstr

To see whose data you are looking at:
148:
<?php
$userdata = scorm_get_user_data($u);
echo 'You are looking at the data of '.$userdata->firstname.' '.$userdata->lastname;
?>

4. report.php
Below $row[]=$detailslink
$row[] = '<a href="player.php?a='.$scorm->id.'&u='.$user.'&scoid='.$sco->id.'">Results</a>';
so a link to the data is added.

5. /datamodels/scorm_12.js.php
In SCORM 1.2 the math applets are problematic because of the 4096 bytes limit for the suspendstate. This could be enlarged by
adding 21: CMIString8192 = '^.{0,8192}$';
72: 'cmi.suspend_data':{'defaultvalue':'<?php echo isset($userdata->{'cmi.suspend_data'})?$userdata->{'cmi.suspend_data'}:'' ?>', 'format':CMIString8192, 'mod':'rw', 'writeerror':'405'},

Show
Christian Bokhove added a comment - With changes to (version 1.9.2+), this is a dirty hack for showing suspend_data. I would be glad to have a "cleaner" one. Working: it adds a $u variabele passing the user to the SCORM module. Giving a user ID shows the SCORM module as the user left it last. This is added to a results link on the report page. loadSCO.php api.php player.php report.php locallib.php /datamodels/scorm_12.js.php 1. loadSCO.php $u parameter added 8: $u = optional_param('u', $USER->id, PARAM_INT); // user ID 59, 62 not $USER->id but only $u 2. api.php $u parameter added 11: $u = optional_param('u', $USER->id, PARAM_INT); // user ID 39 not $USER->id but only $u 3. player.php $u parameter added (around 17): $u = optional_param('u', $USER->id, PARAM_INT); // user ID (around 108): $userstr = '&u='.$u; (after $orgstr = '&currentorg='.$currentorg (around 130): <script language="JavaScript" type="text/javascript" src="api.php?id=<?php echo $cm->id.$scoidstr.$modestr.$attemptstr.$userstr ?>"></script> should become <script language="JavaScript" type="text/javascript" src="api.php?id=<?php echo $cm->id.$scoidstr.$modestr.$attemptstr.$userstr ?>"></script> And also all calls to api.php and loadSCO.php could get an extra .$userstr To see whose data you are looking at: 148: <?php $userdata = scorm_get_user_data($u); echo 'You are looking at the data of '.$userdata->firstname.' '.$userdata->lastname; ?> 4. report.php Below $row[]=$detailslink $row[] = '<a href="player.php?a='.$scorm->id.'&u='.$user.'&scoid='.$sco->id.'">Results</a>'; so a link to the data is added. 5. /datamodels/scorm_12.js.php In SCORM 1.2 the math applets are problematic because of the 4096 bytes limit for the suspendstate. This could be enlarged by adding 21: CMIString8192 = '^.{0,8192}$'; 72: 'cmi.suspend_data':{'defaultvalue':'<?php echo isset($userdata->{'cmi.suspend_data'})?$userdata->{'cmi.suspend_data'}:'' ?>', 'format':CMIString8192, 'mod':'rw', 'writeerror':'405'},
Hide
Dan Marsden added a comment -

I'm flagging this one as fixed - reporting for SCORM in 2.0 has improved a lot - any new specific features should be on new Tracker issues (if not already covered by an existing tracker issue)

Show
Dan Marsden added a comment - I'm flagging this one as fixed - reporting for SCORM in 2.0 has improved a lot - any new specific features should be on new Tracker issues (if not already covered by an existing tracker issue)
Hide
Sohail Aslam added a comment -

From the details it seems it has been fixed for 2.0.

I am using Moodle 2.1 and this fix/feature is not working there. There is a link to launch the SCO/Course under "Tracking Details" link. It should launch the course with user data (whose report is being viewed) but it launch the course with the user data who ever is logged in at the time of viewing (most probably teacher or administrator).

Show
Sohail Aslam added a comment - From the details it seems it has been fixed for 2.0. I am using Moodle 2.1 and this fix/feature is not working there. There is a link to launch the SCO/Course under "Tracking Details" link. It should launch the course with user data (whose report is being viewed) but it launch the course with the user data who ever is logged in at the time of viewing (most probably teacher or administrator).
Hide
Dan Marsden added a comment -

Hi Sohail - as mentioned in the other bug you created this is not a feature that has ever been in Moodle afaik and it's not something I'm all that keen to add. Reporting in Moodle 2.2 has improved even more since and we have a new interactions report almost ready for inclusion that displays the information in a much better manner. - Thanks!

Show
Dan Marsden added a comment - Hi Sohail - as mentioned in the other bug you created this is not a feature that has ever been in Moodle afaik and it's not something I'm all that keen to add. Reporting in Moodle 2.2 has improved even more since and we have a new interactions report almost ready for inclusion that displays the information in a much better manner. - Thanks!

People

Vote (1)
Watch (1)

Dates

  • Created:
    Updated:
    Resolved: