예제 #1
0
     }
     // list previous submissions
     print_heading(get_string("yoursubmissions", "workshop"));
     workshop_list_user_submissions($workshop, $USER);
     // are resubmissions allowed and the workshop is in submission/assessment phase?
     if ($workshop->resubmit and ($timenow > $workshop->assessmentstart and $timenow < $workshop->submissionend)) {
         // see if there are any cold assessments of the last submission
         // if there are then print upload form
         if ($submissions = workshop_get_user_submissions($workshop, $USER)) {
             foreach ($submissions as $submission) {
                 $lastsubmission = $submission;
                 break;
             }
             $n = 0;
             // number of cold assessments (not include self assessments)
             if ($assessments = workshop_get_assessments($lastsubmission)) {
                 foreach ($assessments as $assessment) {
                     if ($assessment->userid != $USER->id) {
                         $n++;
                     }
                 }
             }
             if ($n) {
                 echo "<hr size=\"1\" noshade=\"noshade\" />";
                 print_heading(get_string("submitrevisedassignment", "workshop") . ":");
                 workshop_print_upload_form($workshop);
                 echo "<hr size=\"1\" noshade=\"noshade\" />";
             }
         }
     }
 }
예제 #2
0
if (!($newsubmission->id = insert_record("workshop_submissions", $newsubmission))) {
    error("Workshop submission: Failure to create new submission record!");
}
// see if this is a resubmission by looking at the previous submissions...
if ($submissions and $workshop->submissionstart > time()) {
    // ...but not teacher submissions
    // find the last submission
    foreach ($submissions as $submission) {
        $lastsubmission = $submission;
        break;
    }
    // find all the possible assessments of this submission
    // ...and if they have been assessed give the assessor a new assessment
    // based on their old assessment, if the assessment has not be made
    // just delete it!
    if ($assessments = workshop_get_assessments($submission, 'ALL')) {
        foreach ($assessments as $assessment) {
            if ($assessment->timecreated < $timenow) {
                // a Cold or Warm assessment...
                if ($assessment->userid != $USER->id) {
                    // only copy other students assessment not the self assessment (if present)
                    // copy it with feedback..
                    $newassessment = workshop_copy_assessment($assessment, $newsubmission, true);
                    // set the resubmission flag so student can be emailed/told about
                    // this assessment
                    set_field("workshop_assessments", "resubmission", 1, "id", $newassessment->id);
                }
            } else {
                // a hot assessment, was not used, just dump it
                delete_records("workshop_assessments", "id", $assessment->id);
            }
예제 #3
0
function workshop_submission_grade($workshop, $submission)
{
    // returns the current (external) grade of the submission based on the "good" (cold) assessments
    // (needed as it's called by grade)
    $grade = 0;
    if ($assessments = workshop_get_assessments($submission)) {
        $n = 0;
        foreach ($assessments as $assessment) {
            if ($workshop->agreeassessments and !$assessment->timeagreed) {
                // ignore assessments which have not been agreed
                continue;
            }
            if ($assessment->gradinggrade or !$assessment->timegraded) {
                // a good assessment (or one that has not been graded yet)
                if (workshop_is_teacher($workshop, $assessment->userid)) {
                    $timenow = time();
                    if ($timenow > $workshop->releasegrades) {
                        // teacher's grade is available
                        $grade += $workshop->teacherweight * $assessment->grade;
                        $n += $workshop->teacherweight;
                    }
                } else {
                    $grade += $assessment->grade;
                    $n++;
                }
            }
        }
        if ($n) {
            // stop division by zero
            $grade = $grade / $n;
        }
    }
    return number_format($grade * $workshop->grade / 100, 1);
}
예제 #4
0
파일: locallib.php 프로젝트: r007/PMoodle
function workshop_print_submission_assessments($workshop, $submission, $type)
{
    global $USER, $CFG;
    // Returns the teacher or peer grade and a hyperlinked list of grades for this submission
    if (!($cm = get_coursemodule_from_instance("workshop", $workshop->id, $workshop->course))) {
        error("Course Module ID was incorrect");
    }
    $str = '';
    // get the assessments in grade order, highest first
    if ($assessments = workshop_get_assessments($submission, "", "grade DESC")) {
        if ($type == 'teacher' or $type == 'all') {
            // students can see teacher assessments only if the release date has passed
            $timenow = time();
            if (workshop_is_teacher($workshop, $USER->id) or $timenow > $workshop->releasegrades) {
                foreach ($assessments as $assessment) {
                    if (workshop_is_teacher($workshop, $assessment->userid)) {
                        if ($type == 'all') {
                            $str .= workshop_fullname($assessment->userid, $workshop->course) . ': ';
                        }
                        $str .= "<a href=\"viewassessment.php?aid={$assessment->id}\">" . "[" . number_format($assessment->grade * $workshop->grade / 100, 0) . "]</a>";
                        if (workshop_is_teacher($workshop, $USER->id)) {
                            $str .= ' <a title="' . get_string('reassess', 'workshop') . "\" href=\"assess.php?id={$cm->id}&amp;sid={$submission->id}\"><img src=\"{$CFG->pixpath}/t/edit.gif\" " . ' class="iconsmall" alt="' . get_string('reassess', 'workshop') . '" /></a>';
                            $str .= ' <a title="' . get_string('delete', 'workshop') . "\" href=\"assessments.php?action=confirmdelete&amp;wid={$workshop->id}&amp;aid={$assessment->id}\"><img src=\"{$CFG->pixpath}/t/delete.gif\" " . ' class="iconsmall" alt="' . get_string('delete', 'workshop') . '" /></a><br />';
                        }
                    }
                }
            }
        }
        if ($type == 'student' or $type == 'all') {
            foreach ($assessments as $assessment) {
                if (workshop_is_student($workshop, $assessment->userid)) {
                    if ($type == 'all') {
                        $str .= workshop_fullname($assessment->userid, $workshop->course) . ': ';
                    }
                    $str .= "<a href=\"viewassessment.php?aid={$assessment->id}\">";
                    if ($workshop->agreeassessments and !$assessment->timeagreed and workshop_is_student($workshop, $submission->userid)) {
                        // agreement on student work only
                        $str .= "&lt;&lt;" . number_format($assessment->grade * $workshop->grade / 100, 0) . " (" . number_format($assessment->gradinggrade * $workshop->gradinggrade / 100, 0) . ")&gt;&gt;</a> ";
                    } elseif ($assessment->timegraded) {
                        if ($assessment->gradinggrade) {
                            $str .= "{" . number_format($assessment->grade * $workshop->grade / 100, 0);
                            if ($assessment->teachergraded) {
                                $str .= " [" . number_format($assessment->gradinggrade * $workshop->gradinggrade / 100, 0) . "]}</a> ";
                            } else {
                                $str .= " (" . number_format($assessment->gradinggrade * $workshop->gradinggrade / 100, 0) . ")}</a> ";
                            }
                        } else {
                            $str .= "&lt;" . number_format($assessment->grade * $workshop->grade / 100, 0) . " (0)&gt;</a> ";
                        }
                    } else {
                        $str .= "{" . number_format($assessment->grade * $workshop->grade / 100, 0) . "}</a> ";
                    }
                    $str .= '<br />';
                }
            }
        }
    }
    if (!$str) {
        $str = "&nbsp;";
        // be kind to Mozilla browsers!
    }
    return $str;
}