示例#1
0
        $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}");
    }
    $table->data[] = array($stats->count, number_format($stats->mean * $workshop->gradinggrade / 100, 1), number_format($stats->stddev * $workshop->gradinggrade / 100, 1), number_format($stats->max * $workshop->gradinggrade / 100, 1), number_format($stats->min * $workshop->gradinggrade / 100, 1));
    echo '<tr><td>';
    print_heading(get_string("gradinggrade", "workshop") . " " . get_string("analysis", "workshop"));
    print_table($table);
    echo '</td></tr>';
    if ($workshop->showleaguetable and time() > $workshop->assessmentend) {
        workshop_print_league_table($workshop);
        if ($workshop->anonymous) {
            echo "<p>" . get_string("namesnotshowntostudents", "workshop", $course->students) . "</p>\n";
        }
    }
    echo '</table>';
} elseif ($action == 'showdescription') {
    workshop_print_assignment_info($workshop);
    print_box(format_text($workshop->description, $workshop->format), 'generalbox', 'intro');
    if (isset($_SERVER["HTTP_REFERER"])) {
        print_continue(htmlentities($_SERVER["HTTP_REFERER"]));
    } else {
        print_continue("{$CFG->wwwroot}/course/view.php?id={$cm->id}");
    }
} elseif ($action == 'allsubmissions') {
    require_capability('mod/workshop:manage', $context);
    if ($submissions = get_records('workshop_submissions', 'workshopid', $workshop->id)) {
        foreach ($submissions as $submission) {
            $user = get_record('user', 'id', $submission->userid);
            print_heading('"' . $submission->title . '" ' . get_string('by', 'workshop') . ' ' . fullname($user));
            workshop_print_submission($workshop, $submission);
        }
    }
示例#2
0
文件: locallib.php 项目: r007/PMoodle
function workshop_list_submissions_for_admin($workshop, $order)
{
    // list the teacher sublmissions first
    global $CFG, $USER;
    if (!($cm = get_coursemodule_from_instance("workshop", $workshop->id, $workshop->course))) {
        error("Course Module ID was incorrect");
    }
    if (!($course = get_record("course", "id", $workshop->course))) {
        error("Course is misconfigured");
    }
    if (!($cm = get_coursemodule_from_instance("workshop", $workshop->id, $course->id))) {
        error("Course Module ID was incorrect");
    }
    if (groupmode($course, $cm) == SEPARATEGROUPS) {
        $groupid = get_current_group($course->id);
    } else {
        $groupid = 0;
    }
    workshop_print_assignment_info($workshop);
    if (workshop_is_teacheredit($workshop)) {
        // list any teacher submissions
        $table->head = array(get_string("title", "workshop"), get_string("submittedby", "workshop"), get_string("action", "workshop"));
        $table->align = array("left", "left", "left");
        $table->size = array("*", "*", "*");
        $table->cellpadding = 2;
        $table->cellspacing = 0;
        if ($submissions = workshop_get_teacher_submissions($workshop)) {
            foreach ($submissions as $submission) {
                $action = "<a href=\"submissions.php?action=adminamendtitle&amp;id={$cm->id}&amp;sid={$submission->id}\">" . get_string("amendtitle", "workshop") . "</a>";
                // has user already assessed this submission
                if ($assessment = get_record_select("workshop_assessments", "submissionid = {$submission->id}\n                            AND userid = {$USER->id}")) {
                    $curtime = time();
                    if ($assessment->timecreated > $curtime) {
                        // it's a "hanging" assessment
                        $action .= " | <a href=\"assess.php?id={$cm->id}&amp;sid={$submission->id}\">" . get_string("assess", "workshop") . "</a>";
                    } elseif ($curtime - $assessment->timecreated > $CFG->maxeditingtime) {
                        $action .= " | <a href=\"assess.php?id={$cm->id}&amp;sid={$submission->id}\">" . get_string("reassess", "workshop") . "</a>";
                    } else {
                        // there's still time left to edit...
                        $action .= " | <a href=\"assess.php?id={$cm->id}&amp;sid={$submission->id}\">" . get_string("edit", "workshop") . "</a>";
                    }
                } else {
                    // user has not graded this submission
                    $action .= " | <a href=\"assess.php?id={$cm->id}&amp;sid={$submission->id}\">" . get_string("assess", "workshop") . "</a>";
                }
                if ($assessments = workshop_get_assessments($submission)) {
                    $action .= " | <a href=\"assessments.php?action=adminlist&amp;id={$cm->id}&amp;sid={$submission->id}\">" . get_string("listassessments", "workshop") . "</a>";
                }
                if (workshop_is_teacheredit($workshop)) {
                    $action .= " | <a href=\"submissions.php?action=confirmdelete&amp;id={$cm->id}&amp;sid={$submission->id}\">" . get_string("delete", "workshop") . "</a>";
                }
                $table->data[] = array("<a href=\"submissions.php?action=editsubmission&amp;id={$cm->id}&amp;sid={$submission->id}\">{$submission->title}</a>", $course->teacher, $action);
            }
            print_heading(get_string("studentsubmissions", "workshop", $course->teacher), "center");
            print_table($table);
        }
    }
    // list student assessments
    // Get all the students...
    if ($users = workshop_get_students($workshop, "u.lastname, u.firstname")) {
        $timenow = time();
        unset($table);
        $table->head = array(get_string("name"), get_string("title", "workshop"), get_string("action", "workshop"));
        $table->align = array("left", "left", "left");
        $table->size = array("*", "*", "*");
        $table->cellpadding = 2;
        $table->cellspacing = 0;
        $nassessments = 0;
        foreach ($users as $user) {
            // check group membership, if necessary
            if ($groupid) {
                // check user's group
                if (!groups_is_member($groupid, $user->id)) {
                    continue;
                    // skip this user
                }
            }
            // list the assessments which have been done (exclude the hot ones)
            if ($assessments = workshop_get_user_assessments_done($workshop, $user)) {
                $title = '';
                foreach ($assessments as $assessment) {
                    if (!($submission = get_record("workshop_submissions", "id", $assessment->submissionid))) {
                        error("Workshop_list_submissions_for_admin: Submission {$assessment->submissionid} not found!");
                    }
                    $title .= $submission->title;
                    if ($workshop->agreeassessments and !$assessment->timeagreed and workshop_is_student($workshop, $submission->userid)) {
                        // agreements for student work only
                        $title .= " &lt;&lt;" . number_format($assessment->grade * $workshop->grade / 100, 0) . " (" . number_format($assessment->gradinggrade * $workshop->gradinggrade / 100, 0) . ")&gt;&gt; ";
                    } elseif ($assessment->timegraded) {
                        if ($assessment->gradinggrade) {
                            // a good assessment
                            $title .= " {" . number_format($assessment->grade * $workshop->grade / 100, 0) . " (" . number_format($assessment->gradinggrade * $workshop->gradinggrade / 100, 0) . ")} ";
                        } else {
                            // a poor assessment
                            $title .= " &lt;" . number_format($assessment->grade * $workshop->grade / 100, 0) . " (" . number_format($assessment->gradinggrade * $workshop->gradinggrade / 100, 0) . ")&gt; ";
                        }
                    } else {
                        // not yet graded
                        $title .= " {" . number_format($assessment->grade * $workshop->grade / 100, 0) . " ((" . number_format($assessment->gradinggrade * $workshop->gradinggrade / 100, 0) . "))} ";
                    }
                    if ($realassessments = workshop_count_user_assessments_done($workshop, $user)) {
                        $action = "<a href=\"assessments.php?action=adminlistbystudent&amp;id={$cm->id}&amp;userid={$user->id}\">" . get_string("liststudentsassessments", "workshop") . " ({$realassessments})</a>";
                    } else {
                        $action = "";
                    }
                }
                $nassessments++;
                $table->data[] = array(fullname($user), $title, $action);
            }
        }
        if (isset($table->data)) {
            print_heading(get_string("studentassessments", "workshop", $course->student) . " [{$nassessments}]");
            print_table($table);
            workshop_print_key($workshop);
            // 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 ($groupid) {
                $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 = {$groupid} AND a.userid = g.userid 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}");
            }
            $table->data[] = array($stats->count, number_format($stats->mean * $workshop->gradinggrade / 100, 1), number_format($stats->stddev * $workshop->gradinggrade / 100, 1), number_format($stats->max * $workshop->gradinggrade / 100, 1), number_format($stats->min * $workshop->gradinggrade / 100, 1));
            print_heading(get_string("gradinggrade", "workshop") . " " . get_string("analysis", "workshop"));
            print_table($table);
            echo "<p style=\"text-align:center\"><a href=\"assessments.php?id={$cm->id}&amp;action=regradestudentassessments\">" . get_string("regradestudentassessments", "workshop") . "</a> ";
            helpbutton("regrading", get_string("regradestudentassessments", "workshop"), "workshop");
            echo "</p>\n";
        }
    }
    // now the sudent submissions
    unset($table);
    switch ($order) {
        case "title":
            $table->head = array("<a href=\"submissions.php?action=adminlist&amp;id={$cm->id}&amp;order=name\">" . get_string("submittedby", "workshop") . "</a>", get_string("title", "workshop"), get_string("submitted", "workshop"), get_string("action", "workshop"));
            break;
        case "name":
            $table->head = array(get_string("submittedby", "workshop"), "<a href=\"submissions.php?action=adminlist&amp;id={$cm->id}&amp;order=title\">" . get_string("title", "workshop") . "</a>", get_string("submitted", "workshop"), get_string("action", "workshop"));
            break;
    }
    $table->align = array("left", "left", "left", "left");
    $table->size = array("*", "*", "*", "*");
    $table->cellpadding = 2;
    $table->cellspacing = 0;
    $nsubmissions = 0;
    if ($submissions = workshop_get_student_submissions($workshop, $order)) {
        foreach ($submissions as $submission) {
            if (!($user = get_record("user", "id", $submission->userid))) {
                error("workshop_list_submissions_for_admin: failure to get user record");
            }
            // check group membership, if necessary
            if ($groupid) {
                // check user's group
                if (!groups_is_member($groupid, $user->id)) {
                    continue;
                    // skip this user
                }
            }
            $datesubmitted = userdate($submission->timecreated);
            if ($submission->late) {
                $datesubmitted = "<span class=\"redfont\">" . $datesubmitted . "</span>";
            }
            $action = "<a href=\"submissions.php?action=adminamendtitle&amp;id={$cm->id}&amp;sid={$submission->id}\">" . get_string("amendtitle", "workshop") . "</a>";
            // has teacher already assessed this submission
            if ($assessment = get_record_select("workshop_assessments", "submissionid = {$submission->id}\n                    AND userid = {$USER->id}")) {
                $curtime = time();
                if ($curtime - $assessment->timecreated > $CFG->maxeditingtime) {
                    $action .= " | <a href=\"assess.php?id={$cm->id}&amp;sid={$submission->id}\">" . get_string("reassess", "workshop") . "</a>";
                } else {
                    // there's still time left to edit...
                    $action .= " | <a href=\"assess.php?id={$cm->id}&amp;sid={$submission->id}\">" . get_string("edit", "workshop") . "</a>";
                }
            } else {
                // user has not assessed this submission
                $action .= " | <a href=\"assess.php?id={$cm->id}&amp;sid={$submission->id}\">" . get_string("assess", "workshop") . "</a>";
            }
            if ($nassessments = workshop_count_assessments($submission)) {
                $action .= " | <a href=\"assessments.php?action=adminlist&amp;id={$cm->id}&amp;sid={$submission->id}\">" . get_string("listassessments", "workshop") . " ({$nassessments})</a>";
            }
            if ($submission->late) {
                $action .= " | <a href=\"submissions.php?action=adminlateflag&amp;id={$cm->id}&amp;sid={$submission->id}\">" . get_string("clearlateflag", "workshop") . "</a>";
            }
            $action .= " | <a href=\"submissions.php?action=confirmdelete&amp;id={$cm->id}&amp;sid={$submission->id}\">" . get_string("delete", "workshop") . "</a>";
            $nsubmissions++;
            $table->data[] = array("{$user->firstname} {$user->lastname}", $submission->title . " (" . get_string("grade") . ": " . workshop_submission_grade($workshop, $submission) . " " . workshop_print_submission_assessments($workshop, $submission, "teacher") . " " . workshop_print_submission_assessments($workshop, $submission, "student") . ")", $datesubmitted, $action);
        }
        print_heading(get_string("studentsubmissions", "workshop", $course->student) . " [{$nsubmissions}]", "center");
        print_table($table);
        workshop_print_key($workshop);
    }
}