course)) { error("Course is misconfigured"); } if (! $exercise = get_record("exercise", "id", $cm->instance)) { error("Course module is incorrect"); } require_login($course->id); if ($course->category) { $navigation = "id\">$course->shortname ->"; } $strexercises = get_string("modulenameplural", "exercise"); $strexercise = get_string("modulename", "exercise"); $strsubmissions = get_string("submissions", "exercise"); // ... print the header and... print_header("$course->shortname: $exercise->name", "$course->fullname", "$navigation id>$strexercises -> id\">$exercise->name -> $strsubmissions", "", "", true); //...get the action! require_variable($action); /******************* admin amend title ************************************/ if ($action == 'adminamendtitle' ) { if (!isteacher($course->id)) { error("Only teachers can look at this page"); } if (empty($_GET['sid'])) { error("Admin Amend Title: submission id missing"); } $submission = get_record("exercise_submissions", "id", $_GET['sid']); print_heading(get_string("amendtitle", "exercise")); ?>
\n"; echo " \n"; echo "

". get_string("title", "exercise").":

\n"; echo " title\">\n"; echo "
\n"; echo "\n"; echo "
\n"; } /******************* admin clear late (flag) ************************************/ elseif ($action == 'adminclearlate' ) { if (!isteacher($course->id)) { error("Only teachers can look at this page"); } if (empty($_GET['sid'])) { error("Admin clear late flag: submission id missing"); } if (!$submission = get_record("exercise_submissions", "id", $_GET['sid'])) { error("Admin clear late flag: can not get submission record"); } if (set_field("exercise_submissions", "late", 0, "id", $_GET['sid'])) { print_heading(get_string("clearlateflag", "exercise")." ".get_string("ok")); } add_to_log($course->id, "exercise", "late flag cleared", "view.php?id=$cm->id", "submission $submission->id"); print_continue("submissions.php?id=$cm->id&action=adminlist"); } /******************* admin confirm delete ************************************/ elseif ($action == 'adminconfirmdelete' ) { if (!isteacher($course->id)) { error("Only teachers can look at this page"); } if (empty($_GET['sid'])) { error("Admin confirm delete: submission id missing"); } if (!$submission = get_record("exercise_submissions", "id", $_GET['sid'])) { error("Admin delete: can not get submission record"); } if (isteacher($course->id, $submission->userid)) { if (!isteacheredit($course->id)) { error("Only teacher with editing permissions can delete teacher submissions."); } } notice_yesno(get_string("confirmdeletionofthisitem","exercise", get_string("submission", "exercise")), "submissions.php?action=admindelete&id=$cm->id&sid=$_GET[sid]", "submissions.php?id=$cm->id&action=adminlist"); } /******************* admin delete ************************************/ elseif ($action == 'admindelete' ) { if (!isteacher($course->id)) { error("Only teachers can look at this page"); } if (empty($_GET['sid'])) { error("Admin delete: submission id missing"); } if (!$submission = get_record("exercise_submissions", "id", $_GET['sid'])) { error("Admin delete: can not get submission record"); } print_string("deleting", "exercise"); // first get any assessments... if ($assessments = exercise_get_assessments($submission)) { foreach($assessments as $assessment) { // ...and all the associated records... delete_records("exercise_grades", "assessmentid", $assessment->id); echo "."; } // ...now delete the assessments... delete_records("exercise_assessments", "submissionid", $submission->id); } // ...and the submission record... delete_records("exercise_submissions", "id", $submission->id); // ..and finally the submitted file exercise_delete_submitted_files($exercise, $submission); add_to_log($course->id, "exercise", "delete", "view.php?id=$cm->id", "submission $submission->id"); print_continue("submissions.php?id=$cm->id&action=adminlist"); } /******************* admin (confirm) late flag ************************************/ elseif ($action == 'adminlateflag' ) { if (!isteacher($course->id)) { error("Only teachers can look at this page"); } if (empty($_GET['sid'])) { error("Admin confirm late flag: submission id missing"); } if (!$submission = get_record("exercise_submissions", "id", $_GET['sid'])) { error("Admin confirm late flag: can not get submission record"); } notice_yesno(get_string("clearlateflag","exercise")."?", "submissions.php?action=adminclearlate&id=$cm->id&sid=$_GET[sid]", "submissions.php?id=$cm->id&action=adminlist"); } /******************* list all submissions ************************************/ elseif ($action == 'adminlist' ) { if (!isteacher($course->id)) { error("Only teachers can look at this page"); } echo "

Exercise Version-> $module->version

"; exercise_list_submissions_for_admin($exercise); print_continue("view.php?id=$cm->id"); } /******************* admin update title ************************************/ elseif ($action == 'adminupdatetitle' ) { if (!isteacher($course->id)) { error("Only teachers can look at this page"); } if (empty($_POST['sid'])) { error("Admin Update Title: submission id missing"); } if (set_field("exercise_submissions", "title", $_POST['title'], "id", $_POST['sid'])) { print_heading(get_string("amendtitle", "exercise")." ".get_string("ok")); } print_continue("submissions.php?id=$cm->id&action=adminlist"); } /*************** display final grades (by teacher) ***************************/ elseif ($action == 'displayfinalgrades') { // Get all the students if (!$users = get_course_students($course->id, "u.firstname, u.lastname")) { print_heading(get_string("nostudentsyet")); print_footer($course); exit; } // get the final weights from the database $teacherweight = get_field("exercise","teacherweight", "id", $exercise->id); $gradingweight = get_field("exercise","gradingweight", "id", $exercise->id); // show the final grades as stored in the tables... print_heading_with_help(get_string("displayoffinalgrades", "exercise"), "finalgrades", "exercise"); echo "
\n"; echo ""; echo ""; echo ""; echo ""; echo "\n"; // now the weights echo ""; echo "\n"; echo "\n"; echo "\n"; echo "\n"; foreach ($users as $user) { // first get user's own assessment reord, it should contain their grading grade if ($ownassessments = exercise_get_user_assessments($exercise, $user)) { foreach ($ownassessments as $ownassessment) { break; // there should only be one } } else { $ownassessment->gradinggrade = 0; } if ($submissions = exercise_get_user_submissions($exercise, $user)) { foreach ($submissions as $submission) { if ($assessments = exercise_get_assessments($submission)) { foreach ($assessments as $assessment) { // (normally there should only be one $grade = number_format($assessment->grade * $exercise->grade / 100.0, 1); $overallgrade = number_format(((($assessment->grade * $EXERCISE_FWEIGHTS[$teacherweight] / 100.0) + ($ownassessment->gradinggrade * $EXERCISE_FWEIGHTS[$gradingweight]/ COMMENTSCALE )) * $exercise->grade) / ($EXERCISE_FWEIGHTS[$teacherweight] + $EXERCISE_FWEIGHTS[$gradingweight]), 1); if ($submission->late) { $grade = "(".$grade.")"; $overallgrade = "(".$overallgrade.")"; } echo "\n"; echo "\n"; echo ""; echo ""; echo "\n"; } } } } } echo "
cellheading2\">".$course->student."cellheading2\">".get_string("submission", "exercise")."cellheading2\" align=\"center\">".get_string("gradeforassessment", "exercise")."cellheading2\" align=\"center\">".get_string("gradeforsubmission", "exercise")."cellheading2\" align=\"center\">".get_string("overallgrade", "exercise")."
cellheading2\">".get_string("weights", "exercise")."cellheading2\"> cellheading2\" align=\"center\">$EXERCISE_FWEIGHTS[$gradingweight]cellheading2\" align=\"center\">$EXERCISE_FWEIGHTS[$teacherweight]cellheading2\"> 
$user->firstname $user->lastname".exercise_print_submission_title($exercise, $submission)."".number_format($ownassessment->gradinggrade * $exercise->grade / COMMENTSCALE, 1)."$grade$overallgrade

\n"; if ($exercise->showleaguetable) { exercise_print_league_table($exercise); echo "
\n"; } print_string("allgradeshaveamaximumof", "exercise", $exercise->grade)."\n"; print_continue("view.php?id=$cm->id"); } /******************* list for assessment student (submissions) ************************************/ elseif ($action == 'listforassessmentstudent' ) { if (!$users = get_course_students($course->id)) { print_heading(get_string("nostudentsyet")); print_footer($course); exit; } if (!isteacher($course->id)) { error("Only teachers can look at this page"); } exercise_list_unassessed_student_submissions($exercise, $USER); print_continue("view.php?id=$cm->id"); } /******************* list for assessment teacher (submissions) ************************************/ elseif ($action == 'listforassessmentteacher' ) { if (!$users = get_course_students($course->id)) { print_heading(get_string("nostudentsyet")); print_footer($course); exit; } exercise_list_unassessed_teacher_submissions($exercise, $USER); print_continue("view.php?id=$cm->id"); } /****************** save league table entries and anonimity setting (by teacher) **************/ elseif ($action == 'saveleaguetable') { $form = (object)$_POST; if (!isteacher($course->id)) { error("Only teachers can look at this page"); } // save the number of league table entries from the form... if ($form->nentries == 'All') { $nentries = 99; } else { $nentries = $form->nentries; } // ...and save it set_field("exercise", "showleaguetable", $nentries, "id", "$exercise->id"); // ...and save the anonimity setting set_field("exercise", "anonymous", $form->anonymous, "id", "$exercise->id"); redirect("submissions.php?id=$cm->id&action=adminlist", get_string("entriessaved", "exercise")); } /*************** save weights (by teacher) ***************************/ elseif ($action == 'saveweights') { $form = (object)$_POST; if (!isteacher($course->id)) { error("Only teachers can look at this page"); } // save the weights from the form... if (isset($form->teacherweight)) { $teacherweight = $form->teacherweight; // ...and save them set_field("exercise", "teacherweight", $teacherweight, "id", "$exercise->id"); } if (isset($form->gradingweight)) { $gradingweight = $form->gradingweight; // ...and save them set_field("exercise", "gradingweight", $gradingweight, "id", "$exercise->id"); } redirect("submissions.php?id=$cm->id&action=adminlist", get_string("weightssaved", "exercise")); } /******************* user confirm delete ************************************/ elseif ($action == 'userconfirmdelete' ) { if (empty($_GET['sid'])) { error("User Confirm Delete: submission id missing"); } notice_yesno(get_string("confirmdeletionofthisitem","exercise", get_string("submission", "exercise")), "submissions.php?action=userdelete&id=$cm->id&sid=$_GET[sid]", "view.php?id=$cm->id"); } /******************* user delete ************************************/ elseif ($action == 'userdelete' ) { if (empty($_GET['sid'])) { error("User Delete: submission id missing"); } if (!$submission = get_record("exercise_submissions", "id", $_GET['sid'])) { error("User Delete: can not get submission record"); } print_string("deleting", "exercise"); // first get any assessments... if ($assessments = exercise_get_assessments($submission)) { foreach($assessments as $assessment) { // ...and all the associated records... delete_records("exercise_grades", "assessmentid", $assessment->id); echo "."; } // ...now delete the assessments... delete_records("exercise_assessments", "submissionid", $submission->id); } // ...and the submission record... delete_records("exercise_submissions", "id", $submission->id); // ..and finally the submitted file exercise_delete_submitted_files($exercise, $submission); add_to_log($course->id, "exercise", "delete", "view.php?id=$cm->id", "submission $submission->id"); print_continue("view.php?id=$cm->id"); } /*************** no man's land **************************************/ else { error("Fatal Error: Unknown Action: ".$action."\n"); } print_footer($course); ?>