Moodle

AICC - Incorrect logic in the AICC.PHP code for handling CMI judgement of passed/failed status based on mastery_score

Details

  • Type: Bug Bug
  • Status: Closed Closed
  • Priority: Major Major
  • Resolution: Fixed
  • Affects Version/s: 1.8.5
  • Fix Version/s: 2.0
  • Component/s: SCORM
  • Labels:
    None
  • Environment:
    Moodle 1.8.5, XAMPP 1.6.6, Windows
  • Database:
    MySQL
  • Affected Branches:
    MOODLE_18_STABLE
  • Fixed Branches:
    MOODLE_20_STABLE

Description

In the AICC.PHP code there is logic to allow the CMI to judge lesson_status (passed/failed) if the course does not send these values but only sends completed. The logic is based on the CMI system been allowed by AICC guidelines to judge pass/fail IF it has a mastery_score set for the content.

This issue only came about due to correctly fixing the logic for retrieving the mastery_score in AICC.PHP page see MDL-14485

The logic in the page is flawed because of two reasons:
1. It does not retrieve the SCO information.
2. It does not correctly reference the datamodel element.

The impact if you make the changes in MDL-14485 and do not fix this issue is that the CMI ALWAYS judges the course failed.

if ($mode == 'normal') {
//Martin Holden, SkillSoft
//Corrected logic for LMS to determine passed/failed status
//Failing previously as masteryscore should be mastery_score
//Also there was no call to retrieve $sco
//22nd April 2008
//
//if ($lessonstatus == 'completed') {
// if (!empty($sco->masteryscore) && !empty($score) && ($score >= $sco->masteryscore)) { // $lessonstatus = 'passed'; // } else { // $lessonstatus = 'failed'; // }
// $id = scorm_insert_track($USER->id, $scorm->id, $sco->id, $attempt, 'cmi.core.lesson_status', $lessonstatus);
//}

if ($lessonstatus == 'completed') {
if ($sco = scorm_get_sco($scoid)) {
if (!empty($sco->mastery_score) && !empty($score) && ($score >= $sco->mastery_score)) { $lessonstatus = 'passed'; } else { $lessonstatus = 'failed'; }
$id = scorm_insert_track($USER->id, $scorm->id, $sco->id, $attempt, 'cmi.core.lesson_status', $lessonstatus);
}
}
// END
}

Issue Links

Activity

Hide
Dan Marsden added a comment -

collection of AICC bugs with easy patches provided from Martin

assigning to Piers.

Dan

Show
Dan Marsden added a comment - collection of AICC bugs with easy patches provided from Martin assigning to Piers. Dan
Hide
Dan Marsden added a comment -

This has now been fixed in Head(moodle 2.0) - We currently have no plans to backport this to 1.9Stable, 1.8Stable as this is a big patch, and we haven't received enough working AICC objects to allow us to verify these fixes. - we may revisit this later if more AICC objects are provided for testing.

thanks,

Dan

Show
Dan Marsden added a comment - This has now been fixed in Head(moodle 2.0) - We currently have no plans to backport this to 1.9Stable, 1.8Stable as this is a big patch, and we haven't received enough working AICC objects to allow us to verify these fixes. - we may revisit this later if more AICC objects are provided for testing. thanks, Dan
Hide
Dan Marsden added a comment -

closing - we have no AICC objects to allow this to be tested properly, and no-one seems to be interested in providing them. If this is still an issue for you, please make some AICC objects available in the SCORM repository to allow us to test/reproduce/fix.

Show
Dan Marsden added a comment - closing - we have no AICC objects to allow this to be tested properly, and no-one seems to be interested in providing them. If this is still an issue for you, please make some AICC objects available in the SCORM repository to allow us to test/reproduce/fix.

People

Vote (0)
Watch (0)

Dates

  • Created:
    Updated:
    Resolved: