print_table($table); } } ?> </td> </tr> </table> <?php } else { // grading a user /// starting form echo '<form name="gradesform" action="view.php" method="post">'; echo "<input type=\"hidden\" name=\"id\" value=\"{$cm->id}\" />"; echo "<input type=\"hidden\" name=\"what\" value=\"savegrade\" />"; echo "<input type=\"hidden\" name=\"for\" value=\"{$gradefor}\" />"; $gradeset = brainstorm_get_gradeset($brainstorm->id, $gradefor); $user = get_record('user', 'id', $gradefor); print_heading(get_string('gradingof', 'brainstorm') . ' ' . fullname($user)); /// printing ideas print_heading(get_string('responses', 'brainstorm'), '', 3); $responses = brainstorm_get_responses($brainstorm->id, $user->id, 0, false); if ($responses) { echo '<table><tr>'; brainstorm_print_responses_cols($brainstorm, $responses, false); echo '</tr></table>'; } else { print_simple_box(get_string('notresponded', 'brainstorm')); } if (!$brainstorm->singlegrade && $brainstorm->seqaccesscollect) { print_string('gradeforparticipation', 'brainstorm'); echo ' : ';
/** * Must return an array of grades for a given instance of this module, * indexed by user. It also returns a maximum allowed grade. * * Example: * $return->grades = array of grades; * $return->maxgrade = maximum allowed grade; * * return $return; * * @param int $newmoduleid ID of an instance of this module * @return mixed null or object with an array of grades and with the maximum grade **/ function brainstorm_grades($cmid) { global $CFG; if (!($module = get_record('course_modules', 'id', $cmid))) { return NULL; } if (!($brainstorm = get_record('brainstorm', 'id', $module->instance))) { return NULL; } if ($brainstorm->scale == 0) { // No grading return NULL; } $context = get_context_instance(CONTEXT_MODULE, $cmid); $participants = get_users_by_capability($context, 'mod/brainstorm:gradable', 'u.id,lastname,firstname', 'lastname'); if ($participants) { foreach ($participants as $participant) { $gradeset = brainstorm_get_gradeset($brainstorm->id, $participant->id); if (!$gradeset) { return null; } if ($brainstorm->scale > 0) { // Grading numerically if ($brainstorm->singlegrade) { $finalgrades[$participant->id] = $gradeset->single; } else { if ($brainstorm->seqaccesscollect && isset($gradeset->participate)) { $total[] = $gradeset->participate; $weights[] = $brainstorm->participationweight; } if ($brainstorm->seqaccessprepare && isset($gradeset->prepare)) { $total[] = $gradeset->prepare; $weights[] = $brainstorm->preparingweight; } if ($brainstorm->seqaccessorganize && isset($gradeset->organize)) { $total[] = $gradeset->organize; $weights[] = $brainstorm->organizeweight; } if ($brainstorm->seqaccessfeedback && isset($gradeset->feedback)) { $total[] = $gradeset->feedback; $weights[] = $brainstorm->feedbackweight; } $totalweights = array_sum($weights); $totalgrade = 0; for ($i = 0; $i < count(@$total); $i++) { $totalgrade += $total[$i] * $weights[$i]; } $totalgrade = $totalweights != 0 ? round($totalgrade / $totalweights) : 0; $finalgrades[$participant->id] = $totalgrade; } $return->grades = @$finalgrades; $return->maxgrade = $brainstorm->scale; return $return; } else { // Scales $finalgrades = array(); $scaleid = -$brainstorm->grade; $maxgrade = ''; if ($scale = get_record('scale', 'id', $scaleid)) { $scalegrades = make_menu_from_list($scale->scale); } if ($brainstorm->singlegrade) { $finalgrades[$participant->id] = $scalegrades($gradeset->single); } else { if ($brainstorm->setaccesscollect) { $total[] = $scalegrades($gradeset->participate); $weights[] = $brainstorm->participationweight; } if ($brainstorm->setaccessprepare) { $total[] = $scalegrades($gradeset->prepare); $weights[] = $brainstorm->preparingweight; } if ($brainstorm->setaccessorganize) { $total[] = $scalegrades($gradeset->organize); $weights[] = $brainstorm->organizeweight; } if ($brainstorm->setaccessfeedback) { $total[] = $scalegrades($gradeset->feedback); $weights[] = $brainstorm->feedbackweight; } $totalweights = array_sum($weights); $totalgrade = 0; for ($i = 0; $i < count(@$total); $i++) { $totalgrade += $total[$i] * $weights[$i]; } $totalgrade = $totalweights != 0 ? round($totalgrade / $totalweights) : 0; $finalgrades[$participant->id] = $totalgrade; } $return->grades = @$final; $return->maxgrade = $maxgrade; return $return; } } } return null; }