Permalink
Browse files

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.
  • Loading branch information...
1 parent e1fe0c5 commit 1fd94ee7d797a810b137a637e7552c227e24a541 @mudrd8mz mudrd8mz committed Oct 30, 2011
@@ -50,6 +50,12 @@ protected function definition_inner(&$mform) {
$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 @@ protected function definition_inner(&$mform) {
// 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['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';

0 comments on commit 1fd94ee

Please sign in to comment.