Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

MDL-30006 Workshop / Number of errors grading: force graders to actua…

…lly answer the form

QuickForms do not distinguish non-checked radio from the checked radio
with the value "0". So we map the database grade value "0" to a value
"-1" when displaying the form and vice versa when saving the form. This
allowed us to have none radios checked by default and force the grader
to actually answer the form themselves, using the 'required' rule.
  • Loading branch information...
commit e4829fa69636b447a805a4d84c4d7de1bad30c4b 1 parent 1fd94ee
@mudrd8mz mudrd8mz authored
View
8 mod/workshop/form/numerrors/assessment_form.php
@@ -71,9 +71,11 @@ protected function definition_inner(&$mform) {
// evaluation of the assertion
$label = get_string('dimensiongrade', 'workshopform_numerrors');
- $mform->addElement('radio', 'grade__idx_' . $i, get_string('yourassessment', 'workshop'), $fields->{'grade0__idx_'.$i}, 0);
- $mform->addElement('radio', 'grade__idx_' . $i, '', $fields->{'grade1__idx_'.$i}, 1);
- $mform->setDefault('grade__idx_' . $i, 0);
+ $mform->addGroup(array(
+ $mform->createElement('radio', 'grade__idx_' . $i, '', $fields->{'grade0__idx_'.$i}, -1),
+ $mform->createElement('radio', 'grade__idx_' . $i, '', $fields->{'grade1__idx_'.$i}, 1),
+ ), 'group_grade__idx_' . $i, get_string('yourassessment', 'workshop'), '<br />', false);
+ $mform->addRule('group_grade__idx_' . $i, get_string('required'), 'required');
// comment
$label = get_string('dimensioncomment', 'workshopform_numerrors');
View
4 mod/workshop/form/numerrors/lib.php
@@ -252,7 +252,7 @@ public function get_assessment_form(moodle_url $actionurl=null, $mode='preview',
$dimid = $fields->{'dimensionid__idx_'.$i};
if (isset($grades[$dimid])) {
$current->{'gradeid__idx_'.$i} = $grades[$dimid]->id;
- $current->{'grade__idx_'.$i} = $grades[$dimid]->grade;
+ $current->{'grade__idx_'.$i} = ($grades[$dimid]->grade == 0 ? -1 : 1);
$current->{'peercomment__idx_'.$i} = $grades[$dimid]->peercomment;
}
}
@@ -294,7 +294,7 @@ public function save_assessment(stdclass $assessment, stdclass $data) {
$grade->assessmentid = $assessment->id;
$grade->strategy = 'numerrors';
$grade->dimensionid = $data->{'dimensionid__idx_' . $i};
- $grade->grade = $data->{'grade__idx_' . $i};
+ $grade->grade = ($data->{'grade__idx_' . $i} <= 0 ? 0 : 1);
$grade->peercomment = $data->{'peercomment__idx_' . $i};
$grade->peercommentformat = FORMAT_HTML;
if (empty($grade->id)) {
Please sign in to comment.
Something went wrong with that request. Please try again.