MDL-36897 quiz: redirect teachers from summary to review page.
authorTim Hunt <T.J.Hunt@open.ac.uk>
Fri, 30 Nov 2012 11:53:38 +0000 (11:53 +0000)
committerTim Hunt <T.J.Hunt@open.ac.uk>
Fri, 30 Nov 2012 15:53:12 +0000 (15:53 +0000)
There is already logic like this at the top of attempt.php. If the
teacher arrives at one of these pages for a student's attempt, for
example by clicking a link in the logs, then they should be redirected
to the review page to see the students attempt in its current state.

mod/quiz/summary.php

index 303638f..cf6068d 100644 (file)
@@ -36,9 +36,13 @@ $attemptobj = quiz_attempt::create($attemptid);
 // Check login.
 require_login($attemptobj->get_course(), false, $attemptobj->get_cm());
 
 // Check login.
 require_login($attemptobj->get_course(), false, $attemptobj->get_cm());
 
-// If this is not our own attempt, display an error.
+// Check that this attempt belongs to this user.
 if ($attemptobj->get_userid() != $USER->id) {
 if ($attemptobj->get_userid() != $USER->id) {
-    print_error('notyourattempt', 'quiz', $attemptobj->view_url());
+    if ($attemptobj->has_capability('mod/quiz:viewreports')) {
+        redirect($attemptobj->review_url(null, $page));
+    } else {
+        throw new moodle_quiz_exception($attemptobj->get_quizobj(), 'notyourattempt');
+    }
 }
 
 // Check capabilites.
 }
 
 // Check capabilites.