diff --git a/mod/exercise/backuplib.php b/mod/exercise/backuplib.php
index 78b894ddff6..9e41a87ebe1 100644
--- a/mod/exercise/backuplib.php
+++ b/mod/exercise/backuplib.php
@@ -173,6 +173,7 @@
fwrite ($bf,full_tag("RESUBMIT",6,false,$submission->resubmit));
fwrite ($bf,full_tag("MAILED",6,false,$submission->mailed));
fwrite ($bf,full_tag("ISEXERCISE",6,false,$submission->isexercise));
+ fwrite ($bf,full_tag("LATE",6,false,$submission->late));
//Now we backup any exercise assessments (if student data required)
if ($preferences->mods["exercise"]->userinfo) {
$status = backup_exercise_assessments($bf,$preferences,$exerciseid,$submission->id);
diff --git a/mod/exercise/lib.php b/mod/exercise/lib.php
index 488e7847fd2..05368cdcb14 100644
--- a/mod/exercise/lib.php
+++ b/mod/exercise/lib.php
@@ -1297,10 +1297,10 @@ function exercise_get_user_submissions($exercise, $user) {
error("Course is misconfigured");
}
if (isteacher($course->id, $user->id)) {
- return get_records_select("exercise_submissions ",
+ return get_records_select("exercise_submissions",
"exerciseid = $exercise->id AND isexercise = 1", "timecreated" );
}
- return get_records_select("exercise_submissions ",
+ return get_records_select("exercise_submissions",
"exerciseid = $exercise->id AND userid = $user->id", "timecreated" );
}
@@ -2005,7 +2005,7 @@ function exercise_list_user_submissions($exercise, $user) {
$table->cellspacing = 0;
if ($submissions = exercise_get_user_submissions($exercise, $user)) {
- foreach ($submissions as $submission) {
+ foreach ($submissions as $submission) {
$action = '';
$comment = '';
// allow user to delete submission if it's warm
@@ -2013,30 +2013,33 @@ function exercise_list_user_submissions($exercise, $user) {
$action = "id&sid=$submission->id\">".
get_string("delete", "exercise")."";
}
- // get the teacher assessments (could be more than one, if unlikely, when multiple teachers)
- if ($assessments = get_records_select("exercise_assessments", "exerciseid = $exercise->id AND
- submissionid = $submission->id")) {
- foreach ($assessments as $assessment) {
- // make sure it's real
- if ($assessment->timecreated < $timenow - $CFG->maxeditingtime) { // it's cold
- if ($action) {
- $action .= " | ";
- }
- $action .= "id&aid=$assessment->id\">".
- get_string("viewassessment", "exercise")."";
- if ($comment) {
- $action .= " | ";
- }
- $grade = number_format($assessment->grade * $exercise->grade / 100.0, 1);
- if ($submission->late) {
- $comment .= get_string("grade").
- ": ($grade)";
- } else {
- $comment .= get_string("grade").": $grade";
+ // if this is a teacher's submission (an exercise descrription) ignore any assessments
+ if (!$submission->isexercise) {
+ // get the teacher assessments (could be more than one, if unlikely, when multiple teachers)
+ if ($assessments = get_records_select("exercise_assessments", "exerciseid = $exercise->id AND
+ submissionid = $submission->id")) {
+ foreach ($assessments as $assessment) {
+ // make sure it's real
+ if ($assessment->timecreated < $timenow - $CFG->maxeditingtime) { // it's cold
+ if ($action) {
+ $action .= " | ";
+ }
+ $action .= "id&aid=$assessment->id\">".
+ get_string("viewassessment", "exercise")."";
+ if ($comment) {
+ $action .= " | ";
+ }
+ $grade = number_format($assessment->grade * $exercise->grade / 100.0, 1);
+ if ($submission->late) {
+ $comment .= get_string("grade").
+ ": ($grade)";
+ } else {
+ $comment .= get_string("grade").": $grade";
+ }
}
}
- }
- }
+ }
+ }
if (!$comment and isstudent($course->id, $user->id)) {
$comment = get_string("awaitingassessmentbythe", "exercise", $course->teacher);
}
diff --git a/mod/exercise/upload.php b/mod/exercise/upload.php
index f2782b18aa7..eba8794de10 100644
--- a/mod/exercise/upload.php
+++ b/mod/exercise/upload.php
@@ -36,14 +36,17 @@
"", "", true);
// 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();
+ // only check if a student, teachers may want to submit a set of exercise variants
+ if (isstudent($course->id)) {
+ 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();
+ }
}
}
}