if ($num = exercise_count_unassessed_student_submissions($exercise)) { $phase .= " [" . get_string("unassessed", "exercise", $num) . "]"; } break; } $table->data[] = array($exercise->section, $link, $title, $phase, $submitted, $due); } else { // it's a student if ($assessments = exercise_get_user_assessments($exercise, $USER)) { // should be only one... foreach ($assessments as $studentassessment) { break; } if ($studentassessment->timegraded) { // it's been assessed if ($teacherassessment = exercise_get_submission_assessment($submission)) { $actualgrade = number_format($studentassessment->gradinggrade * $exercise->gradinggrade / 100.0 + $teacherassessment->grade * $exercise->grade / 100.0, 1); if ($submission->late) { $actualgrade = "<font color=\"red\">(" . $actualgrade . ")<font color=\"red\">"; } $actualgrade .= " (" . get_string("maximumshort") . ": " . number_format($exercise->gradinggrade + $exercise->grade, 0) . ")"; $table->data[] = array($exercise->section, $link, $title, $actualgrade, $submitted, $due); } } else { $table->data[] = array($exercise->section, $link, $title, "-", $submitted, $due); } } } } else { $table->data[] = array($link, $submitted, $due); }
if ($exercise->gradingstrategy) { redirect($returnto, "<p align=\"center\"><b>" . get_string("thegradeis", "exercise") . ": " . number_format($grade * $exercise->grade / 100.0, 1) . " (" . get_string("maximumgrade") . " " . number_format($exercise->grade) . ")</b></p>", 1); } else { redirect($returnto); } } elseif ($action == 'updateteacherassessment') { if (!has_capability('mod/exercise:assess', $context)) { error("Only teachers can look at this page"); } $timenow = time(); $form = data_submitted(); // first do the (teacher's) assessment of the student's submission if (!($submission = get_record("exercise_submissions", "id", $form->sid))) { error("Update teacher assessment: student's submission record not found"); } if (!($assessment = exercise_get_submission_assessment($submission, $USER))) { error("Update teacher assessment: teacher's assessment record not found"); } // first get the assignment elements for maxscores and weights... if (!($elementsraw = get_records("exercise_elements", "exerciseid", $exercise->id, "elementno ASC"))) { print_string("noteonassignmentelements", "exercise"); } else { foreach ($elementsraw as $element) { $elements[] = $element; // to renumber index 0,1,2... } } // don't fiddle about, delete all the old and then add the new! delete_records("exercise_grades", "assessmentid", $assessment->id); //determine what kind of grading we have switch ($exercise->gradingstrategy) {
function exercise_test_user_assessments($exercise, $user) { // see if user has assessed one of teacher's exercises/submissions... global $CFG; $result = false; $timenow = time(); if ($submissions = exercise_get_teacher_submissions($exercise)) { foreach ($submissions as $submission) { if ($assessment = exercise_get_submission_assessment($submission, $user)) { // ...the date stamp on the assessment should be in the past if ($assessment->timecreated < $timenow) { $result = true; break; } } } } return $result; }