MDL-30006 Workshop / Accumulative grading: force graders to actually pick a grade
This patch introduces a new hidden field with the value "-1". The grade selectors are compared with this values and must be greater than it. This should fit well for numerical grades with the range 0..x and scale items with the range 1..x.
This commit is contained in:
@@ -50,6 +50,12 @@ class workshop_accumulative_assessment_form extends workshop_assessment_form {
|
||||
$mform->addElement('hidden', 'nodims', $nodims);
|
||||
$mform->setType('nodims', PARAM_INT);
|
||||
|
||||
// minimal grade value to select - used by the 'compare' rule below
|
||||
// (just an implementation detail to make the rule work, this element is
|
||||
// not processed by the server)
|
||||
$mform->addElement('hidden', 'minusone', -1);
|
||||
$mform->setType('minusone', PARAM_INT);
|
||||
|
||||
for ($i = 0; $i < $nodims; $i++) {
|
||||
// dimension header
|
||||
$dimtitle = get_string('dimensionnumber', 'workshopform_accumulative', $i+1);
|
||||
@@ -72,7 +78,9 @@ class workshop_accumulative_assessment_form extends workshop_assessment_form {
|
||||
// grade for this aspect
|
||||
$label = get_string('dimensiongrade', 'workshopform_accumulative');
|
||||
$options = make_grades_menu($fields->{'grade__idx_' . $i});
|
||||
$options = array('-1' => get_string('choosedots')) + $options;
|
||||
$mform->addElement('select', 'grade__idx_' . $i, $label, $options);
|
||||
$mform->addRule(array('grade__idx_' . $i, 'minusone') , get_string('mustchoosegrade', 'workshopform_accumulative'), 'compare', 'gt');
|
||||
|
||||
// comment
|
||||
$label = get_string('dimensioncomment', 'workshopform_accumulative');
|
||||
|
||||
@@ -36,6 +36,7 @@ $string['dimensionweight'] = 'Weight';
|
||||
$string['excellent'] = 'Excellent';
|
||||
$string['good'] = 'Good';
|
||||
$string['incorrect'] = 'Incorrect';
|
||||
$string['mustchoosegrade'] = 'You have to select a grade for this aspect';
|
||||
$string['pluginname'] = 'Accumulative grading';
|
||||
$string['poor'] = 'Poor';
|
||||
$string['present'] = 'Present';
|
||||
|
||||
Reference in New Issue
Block a user