diff --git a/mod/quiz/attempt.php b/mod/quiz/attempt.php index f180e248b5e..09b3557a8cd 100644 --- a/mod/quiz/attempt.php +++ b/mod/quiz/attempt.php @@ -151,9 +151,14 @@ $numattempts = 0; } $timenow = time(); - $lastattempt_obj = get_record_select('quiz_attempts', "quiz = $quiz->id AND attempt = $numattempts AND userid = $USER->id", 'timefinish'); + $lastattempt_obj = get_record_select('quiz_attempts', + "quiz = $quiz->id AND attempt = $numattempts AND userid = $USER->id", + 'timefinish, timestart'); if ($lastattempt_obj) { $lastattempt = $lastattempt_obj->timefinish; + if ($quiz->timelimit > 0) { + $lastattempt = min($lastattempt, $lastattempt_obj->timestart + $quiz->timelimit*60); + } } if ($numattempts == 1 && !empty($quiz->delay1)) { if ($timenow - $quiz->delay1 < $lastattempt) { diff --git a/mod/quiz/view.php b/mod/quiz/view.php index 24cf62b1958..98db79cd239 100644 --- a/mod/quiz/view.php +++ b/mod/quiz/view.php @@ -368,6 +368,9 @@ $tempunavailable = ''; $lastattempt = end($attempts); $lastattempttime = $lastattempt->timefinish; + if ($quiz->timelimit > 0) { + $lastattempttime = min($lastattempttime, $lastattempt->timestart + $quiz->timelimit*60); + } if ($numattempts == 1 && $quiz->delay1 && $timenow <= $lastattempttime + $quiz->delay1) { $tempunavailable = get_string('temporaryblocked', 'quiz') . ' '. userdate($lastattempttime + $quiz->delay1). '';