From: rkingdon Date: Sat, 1 Nov 2003 17:25:13 +0000 (+0000) Subject: Fix to the Complete isting. Upload now checks the submission for spurious re-submissi... X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=c50365cd38d2dfd2545c495d3b5d05a071736145;p=moodle.git Fix to the Complete isting. Upload now checks the submission for spurious re-submission caused by using the Back button. User and Teacher deletions of submissions are now logged. Redirect delay when marking submissions shortened to one second. --- diff --git a/mod/exercise/assessments.php b/mod/exercise/assessments.php index 72d85a57ca..d4b7d3ffef 100644 --- a/mod/exercise/assessments.php +++ b/mod/exercise/assessments.php @@ -785,9 +785,9 @@ // show grade if grading strategy is not zero if ($exercise->gradingstrategy) { - redirect($returnto, get_string("thegradeis", "exercise").": ". + redirect($returnto, "

grade / 100.0, 1)."% (".get_string("maximumgrade"). - " ".number_format($exercise->grade)."%)"); + " ".number_format($exercise->grade)."%)

", 1); } else { redirect($returnto); @@ -998,9 +998,9 @@ // show grade if grading strategy is not zero if ($exercise->gradingstrategy) { - redirect($returnto, get_string("thegradeis", "exercise").": ". + redirect($returnto, "

".get_string("thegradeis", "exercise").": ". number_format($grade * $exercise->grade / 100.0, 1)."% (".get_string("maximumgrade"). - " ".number_format($exercise->grade)."%)"); + " ".number_format($exercise->grade)."%)

", 1); } else { redirect($returnto); diff --git a/mod/exercise/lib.php b/mod/exercise/lib.php index 9b22a7498d..33c5be8768 100644 --- a/mod/exercise/lib.php +++ b/mod/exercise/lib.php @@ -521,11 +521,16 @@ function exercise_user_complete($course, $user, $mod, $exercise) { if ($assessments = exercise_get_assessments($submission)) { // should only be one but we'll loop anyway foreach ($assessments as $assessment) { - $table->data[] = array(exercise_print_submission_title($exercise, $submission), userdate($submission->timecreated), - userdate($assessment->timecreated), $assessment->grade * $exercise->grade / 100.0); - } + $table->data[] = array(exercise_print_submission_title($exercise, $submission), + userdate($submission->timecreated), userdate($assessment->timecreated), + $assessment->grade * $exercise->grade / 100.0); } - } + } else { + // submission not yet assessed (by teacher) + $table->data[] = array(exercise_print_submission_title($exercise, $submission), + userdate($submission->timecreated), get_string("notassessedyet", "exercise"), 0); + } + } print_table($table); print_simple_box_end(); } else { diff --git a/mod/exercise/submissions.php b/mod/exercise/submissions.php index 61669d95a2..c6f24f27ed 100644 --- a/mod/exercise/submissions.php +++ b/mod/exercise/submissions.php @@ -132,6 +132,7 @@ 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"); } @@ -327,6 +328,7 @@ 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"); } diff --git a/mod/exercise/upload.php b/mod/exercise/upload.php index 8731ba24a9..df8810aeb2 100644 --- a/mod/exercise/upload.php +++ b/mod/exercise/upload.php @@ -4,6 +4,7 @@ require("lib.php"); require_variable($id); // course module ID + $timenow = time(); $newfile = $HTTP_POST_FILES["newfile"]; @@ -33,7 +34,22 @@ "$navigation id>$strexercises -> id\">$exercise->name -> $strupload", "", "", true); - if (!$title = $_POST['title']) { + + // check that this is not a "rapid" second submission, caused by using the back button + if ($submissions = exercise_get_user_submissions($exercise, $USER)) { + // returns all submissions, newest on first + foreach ($submissions as $submission) { + if ($submission->timecreated > $timenow - $CFG->maxeditingtime) { + // ignore this submission + redirect("view.php?id=$cm->id"); + print_footer($course); + exit(); + } + } + } + + // check existence of title + if (!$title = $_POST['title']) { notify(get_string("notitlegiven", "exercise") ); } else { @@ -54,7 +70,7 @@ $newsubmission->userid = $USER->id; } $newsubmission->title = $title; - $newsubmission->timecreated = time(); + $newsubmission->timecreated = $timenow; if (!$newsubmission->id = insert_record("exercise_submissions", $newsubmission)) { error("exercise upload: Failure to create new submission record!"); }