$columnicon = $dir == 'ASC' ? 'down' : 'up'; } $columnicon = " <img src=\"{$CFG->pixpath}/t/{$columnicon}.gif\" alt=\"{$columnicon}\" />"; } ${$column} = "<a href=\"view.php?id={$id}&sort={$column}&dir={$columndir}\">" . $string[$column] . "</a>{$columnicon}"; } if ($workshop->wtype) { $table->head = array("{$firstname} / {$lastname}", get_string("assmnts", "workshop"), $agrade, $title, $date, $tassmnt, get_string('passmnts', 'workshop'), $sgrade, $ograde); } else { $table->head = array("{$firstname} / {$lastname}", $title, $date, $tassmnt, $ograde); } echo '<tr><td>'; print_table($table); echo '</td></tr>'; echo '<tr><td>'; workshop_print_key($workshop); echo '</td></tr>'; // grading grade analysis unset($table); $table->head = array(get_string("count", "workshop"), get_string("mean", "workshop"), get_string("standarddeviation", "workshop"), get_string("maximum", "workshop"), get_string("minimum", "workshop")); $table->align = array("center", "center", "center", "center", "center"); $table->size = array("*", "*", "*", "*", "*"); $table->cellpadding = 2; $table->cellspacing = 0; if ($currentgroup) { $stats = get_record_sql("SELECT COUNT(*) as count, AVG(gradinggrade) AS mean,\n STDDEV(gradinggrade) AS stddev, MIN(gradinggrade) AS min, MAX(gradinggrade) AS max\n FROM {$CFG->prefix}groups_members g, {$CFG->prefix}workshop_assessments a\n WHERE g.groupid = {$currentgroup} AND a.userid = g.userid AND a.timegraded > 0\n AND a.workshopid = {$workshop->id}"); } elseif (!empty($cm->groupingid) && !empty($CFG->enablegroupings)) { $stats = get_record_sql("SELECT COUNT(*) as count, AVG(gradinggrade) AS mean,\n STDDEV(gradinggrade) AS stddev, MIN(gradinggrade) AS min, MAX(gradinggrade) AS max\n FROM {$CFG->prefix}workshop_assessments a\n INNER JOIN {$CFG->prefix}groups_members g ON a.userid = g.userid\n INNER JOIN {$CFG->prefix}groupings_groups gg ON g.groupid = gg.groupid\n WHERE gg.groupingid = {$cm->groupingid} AND a.timegraded > 0\n AND a.workshopid = {$workshop->id}"); } else { // no group/all participants $stats = get_record_sql("SELECT COUNT(*) as count, AVG(gradinggrade) AS mean,\n STDDEV(gradinggrade) AS stddev, MIN(gradinggrade) AS min, MAX(gradinggrade) AS max\n FROM {$CFG->prefix}workshop_assessments a\n WHERE a.timegraded > 0 AND a.workshopid = {$workshop->id}");
function workshop_print_league_table($workshop) { // print an order table of (student) submissions showing teacher's and student's assessments if (!($course = get_record("course", "id", $workshop->course))) { error("Print league table: Course is misconfigured"); } if (!($cm = get_coursemodule_from_instance("workshop", $workshop->id, $workshop->course))) { error("Course Module ID was incorrect"); } // set $groupid if workshop is in SEPARATEGROUPS mode if (groupmode($course, $cm) == SEPARATEGROUPS) { $groupid = get_current_group($course->id); } else { $groupid = 0; } $nentries = $workshop->showleaguetable; if ($workshop->anonymous and workshop_is_student($workshop)) { $table->head = array(get_string("title", "workshop"), get_string("teacherassessments", "workshop", $course->teacher), get_string("studentassessments", "workshop", $course->student), get_string("overallgrade", "workshop")); $table->align = array("left", "center", "center", "center"); $table->size = array("*", "*", "*", "*"); } else { // show names $table->head = array(get_string("title", "workshop"), get_string("name"), get_string("teacherassessments", "workshop", $course->teacher), get_string("studentassessments", "workshop", $course->student), get_string("overallgrade", "workshop")); $table->align = array("left", "left", "center", "center", "center"); $table->size = array("*", "*", "*", "*", "*"); } $table->cellpadding = 2; $table->cellspacing = 0; if ($submissions = workshop_get_student_submissions($workshop)) { foreach ($submissions as $submission) { if ($groupid) { // check submission's group if (!groups_is_member($groupid, $submission->userid)) { continue; // skip this submission } } $grades[$submission->id] = workshop_submission_grade($workshop, $submission); } arsort($grades); // largest grade first reset($grades); $n = 1; while (list($submissionid, $grade) = each($grades)) { if (!($submission = get_record("workshop_submissions", "id", $submissionid))) { error("Print league table: submission not found"); } if (!($user = get_record("user", "id", $submission->userid))) { error("Print league table: user not found"); } if ($workshop->anonymous and workshop_is_student($workshop)) { $table->data[] = array(workshop_print_submission_title($workshop, $submission), workshop_print_submission_assessments($workshop, $submission, "teacher"), workshop_print_submission_assessments($workshop, $submission, "student"), $grade); } else { $table->data[] = array(workshop_print_submission_title($workshop, $submission), fullname($user), workshop_print_submission_assessments($workshop, $submission, "teacher"), workshop_print_submission_assessments($workshop, $submission, "student"), $grade); } $n++; if ($n > $nentries) { break; } } print_heading(get_string("leaguetable", "workshop")); print_table($table); workshop_print_key($workshop); } }