}
-function quiz_get_attempt_responses($attempt) {
+function quiz_get_attempt_responses($attempt, $quiz) {
// Given an attempt object, this function gets all the
// stored responses and returns them in a format suitable
// for regrading using quiz_grade_attempt_results()
FROM {$CFG->prefix}quiz_responses r,
{$CFG->prefix}quiz_questions q
WHERE r.attempt = '$attempt->id'
- AND q.id = r.question")) {
+ AND q.id = r.question
+ AND q.id IN ($quiz->questions)")) {
notify("Could not find any responses for that attempt!");
return false;
}
}
}
- if (! $questions = quiz_get_attempt_responses($attempt)) {
+ if (! $questions = quiz_get_attempt_responses($attempt, $quiz)) {
error("Could not reconstruct quiz results for attempt $attempt->id!");
}
$count->changed = 0;
foreach ($attempts as $attempt) {
+ set_time_limit(120);
+
if (!$attempt->timefinish) { // Skip incomplete attempts
continue;
}
$count->attempt++;
- if (! $questions = quiz_get_attempt_responses($attempt)) {
+ if (! $questions = quiz_get_attempt_responses($attempt, $quiz)) {
error("Could not reconstruct quiz results for attempt $attempt->id!");
}