Details
Description
We're using Moodle to deliver many old AICC HACP courses, each of them based on just Mastery Score feature i.e. the status of each item passes from incomplete to failed/passed according with score being under/over mastery score.
The default review business logic is somewhat a PITA for us since a user that failed a test will be not able to pass it even if his/her score will be over the mastery score, unless the user will start a new attempt, which is fine but not what our users expect to do: they just click over the title of an item, on average.
We kindly ask to add a new configuration parameter in order to enable such review behaviour, being by default enabled for backward compatibility.
Issue Links
| This issue duplicates: | ||||
| MDL-11501 | Scorm New attempts and reviewing |
|
|
|
Patch proposal: it misses english strings and correct DB update procedure (table mdl_scorm, column enablereview, default value 1), waiting for any feedback about the proposal.
lang/it_utf8/scorm.php
mod/scorm/mod_form.php
@@ -130,6 +130,12 @@ $mform->setHelpButton('hidebrowse', array('hidebrowse',get_string('hidebrowse', 'scorm'), 'scorm')); $mform->setDefault('hidebrowse', $CFG->scorm_hidebrowse); $mform->setAdvanced('hidebrowse'); + +// Enable Review + $mform->addElement('selectyesno', 'enablereview', get_string('enablereview', 'scorm')); + $mform->setHelpButton('enablereview', array('enablereview',get_string('enablereview', 'scorm'), 'scorm')); + $mform->setDefault('enablereview', $CFG->scorm_enablereview); + $mform->setAdvanced('enablereview'); // Toc display $mform->addElement('select', 'hidetoc', get_string('hidetoc', 'scorm'), scorm_get_hidetoc_array());mod/scorm/player.php
@@ -91,11 +91,15 @@ } if ($mode != 'browse') { if ($trackdata = scorm_get_tracks($sco->id,$USER->id,$attempt)) { - if (($trackdata->status == 'completed') || ($trackdata->status == 'passed') || ($trackdata->status == 'failed')) { - $mode = 'review'; - } else { - $mode = 'normal'; - } + if ($scorm->enablereview == 1) { + if (($trackdata->status == 'completed') || ($trackdata->status == 'passed') || ($trackdata->status == 'failed')) { + $mode = 'review'; + } else { + $mode = 'normal'; + } + } else { + $mode = 'normal'; + } } else { $mode = 'normal'; }mod/scorm/settings.php
@@ -130,6 +130,12 @@ $mform->setHelpButton('hidebrowse', array('hidebrowse',get_string('hidebrowse', 'scorm'), 'scorm')); $mform->setDefault('hidebrowse', $CFG->scorm_hidebrowse); $mform->setAdvanced('hidebrowse'); + +// Enable Review + $mform->addElement('selectyesno', 'enablereview', get_string('enablereview', 'scorm')); + $mform->setHelpButton('enablereview', array('enablereview',get_string('enablereview', 'scorm'), 'scorm')); + $mform->setDefault('enablereview', $CFG->scorm_enablereview); + $mform->setAdvanced('enablereview'); // Toc display $mform->addElement('select', 'hidetoc', get_string('hidetoc', 'scorm'), scorm_get_hidetoc_array());@@ -91,11 +91,15 @@ } if ($mode != 'browse') { if ($trackdata = scorm_get_tracks($sco->id,$USER->id,$attempt)) { - if (($trackdata->status == 'completed') || ($trackdata->status == 'passed') || ($trackdata->status == 'failed')) { - $mode = 'review'; - } else { - $mode = 'normal'; - } + if ($scorm->enablereview == 1) { + if (($trackdata->status == 'completed') || ($trackdata->status == 'passed') || ($trackdata->status == 'failed')) { + $mode = 'review'; + } else { + $mode = 'normal'; + } + } else { + $mode = 'normal'; + } } else { $mode = 'normal'; }