From a97a7585ffe7c8d458f3019f7f7132da470f7fe6 Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Thu, 17 Apr 2014 18:34:47 -0700 Subject: [PATCH] MDL-45145 mod_quiz: ensure quiz cmid is set before triggering the 'attempt_deleted' event --- mod/quiz/locallib.php | 5 +++++ mod/quiz/report/attemptsreport.php | 2 ++ 2 files changed, 7 insertions(+) diff --git a/mod/quiz/locallib.php b/mod/quiz/locallib.php index 47eb0bc6f4e..d4264b704f8 100644 --- a/mod/quiz/locallib.php +++ b/mod/quiz/locallib.php @@ -372,6 +372,11 @@ function quiz_delete_attempt($attempt, $quiz) { return; } + if (!isset($quiz->cmid)) { + $cm = get_coursemodule_from_instance('quiz', $quiz->id, $quiz->course); + $quiz->cmid = $cm->id; + } + question_engine::delete_questions_usage_by_activity($attempt->uniqueid); $DB->delete_records('quiz_attempts', array('id' => $attempt->id)); diff --git a/mod/quiz/report/attemptsreport.php b/mod/quiz/report/attemptsreport.php index 2342d8507f2..dca7ee99ab9 100644 --- a/mod/quiz/report/attemptsreport.php +++ b/mod/quiz/report/attemptsreport.php @@ -318,6 +318,8 @@ abstract class quiz_attempts_report extends quiz_default_report { continue; } + // Set the course module id before calling quiz_delete_attempt(). + $quiz->cmid = $cm->id; quiz_delete_attempt($attempt, $quiz); } }