Exemplo n.º 1
0
             $columnicon = $dir == 'ASC' ? 'down' : 'up';
         }
         $columnicon = " <img src=\"{$CFG->pixpath}/t/{$columnicon}.gif\" alt=\"{$columnicon}\" />";
     }
     ${$column} = "<a href=\"view.php?id={$id}&amp;sort={$column}&amp;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}");
Exemplo n.º 2
0
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);
    }
}