Skip to content

Commit

Permalink
MDL-30006 Workshop / Number of errors grading: force graders to actua…
Browse files Browse the repository at this point in the history
…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
mudrd8mz committed Oct 30, 2011
1 parent 1fd94ee commit e4829fa
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 5 deletions.
8 changes: 5 additions & 3 deletions mod/workshop/form/numerrors/assessment_form.php
Expand Up @@ -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');
Expand Down
4 changes: 2 additions & 2 deletions mod/workshop/form/numerrors/lib.php
Expand Up @@ -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;
}
}
Expand Down Expand Up @@ -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)) {
Expand Down

0 comments on commit e4829fa

Please sign in to comment.