From 23e5104ae284d359fcc91b64d6f6297026150000 Mon Sep 17 00:00:00 2001 From: Marina Glancy Date: Fri, 21 Apr 2017 13:00:28 +0800 Subject: [PATCH] MDL-58666 course: add module name to cache without it there will be an extra db read in get_array_of_activities() to retrieve it for each activity --- mod/choice/lib.php | 3 ++- mod/data/lib.php | 3 ++- mod/feedback/lib.php | 3 ++- mod/forum/lib.php | 3 ++- mod/glossary/lib.php | 7 ++++--- mod/lesson/lib.php | 3 ++- mod/quiz/lib.php | 3 ++- mod/scorm/lib.php | 3 ++- mod/survey/lib.php | 3 ++- 9 files changed, 20 insertions(+), 11 deletions(-) diff --git a/mod/choice/lib.php b/mod/choice/lib.php index 6211721c947..6dcc9160e79 100644 --- a/mod/choice/lib.php +++ b/mod/choice/lib.php @@ -1242,12 +1242,13 @@ function choice_get_coursemodule_info($coursemodule) { global $DB; $dbparams = ['id' => $coursemodule->instance]; - $fields = 'id, completionsubmit'; + $fields = 'id, name, completionsubmit'; if (!$choice = $DB->get_record('choice', $dbparams, $fields)) { return false; } $result = new cached_cm_info(); + $result->name = $choice->name; // Populate the custom completion rules as key => value pairs, but only if the completion mode is 'automatic'. if ($coursemodule->completion == COMPLETION_TRACKING_AUTOMATIC) { diff --git a/mod/data/lib.php b/mod/data/lib.php index bdba9e9bd66..cd07cf412f7 100644 --- a/mod/data/lib.php +++ b/mod/data/lib.php @@ -4336,12 +4336,13 @@ function data_get_coursemodule_info($coursemodule) { global $DB; $dbparams = ['id' => $coursemodule->instance]; - $fields = 'id, completionentries'; + $fields = 'id, name, completionentries'; if (!$data = $DB->get_record('data', $dbparams, $fields)) { return false; } $result = new cached_cm_info(); + $result->name = $data->name; // Populate the custom completion rules as key => value pairs, but only if the completion mode is 'automatic'. if ($coursemodule->completion == COMPLETION_TRACKING_AUTOMATIC) { diff --git a/mod/feedback/lib.php b/mod/feedback/lib.php index fe7800940b8..f4d4ac477c5 100644 --- a/mod/feedback/lib.php +++ b/mod/feedback/lib.php @@ -3492,12 +3492,13 @@ function feedback_get_coursemodule_info($coursemodule) { global $DB; $dbparams = ['id' => $coursemodule->instance]; - $fields = 'id, completionsubmit'; + $fields = 'id, name, completionsubmit'; if (!$feedback = $DB->get_record('feedback', $dbparams, $fields)) { return false; } $result = new cached_cm_info(); + $result->name = $feedback->name; // Populate the custom completion rules as key => value pairs, but only if the completion mode is 'automatic'. if ($coursemodule->completion == COMPLETION_TRACKING_AUTOMATIC) { diff --git a/mod/forum/lib.php b/mod/forum/lib.php index d1293e2c803..c3c01624037 100644 --- a/mod/forum/lib.php +++ b/mod/forum/lib.php @@ -8244,12 +8244,13 @@ function forum_get_coursemodule_info($coursemodule) { global $DB; $dbparams = ['id' => $coursemodule->instance]; - $fields = 'id, completionposts, completiondiscussions, completionreplies'; + $fields = 'id, name, completionposts, completiondiscussions, completionreplies'; if (!$forum = $DB->get_record('forum', $dbparams, $fields)) { return false; } $result = new cached_cm_info(); + $result->name = $forum->name; // Populate the custom completion rules as key => value pairs, but only if the completion mode is 'automatic'. if ($coursemodule->completion == COMPLETION_TRACKING_AUTOMATIC) { diff --git a/mod/glossary/lib.php b/mod/glossary/lib.php index a6432463a70..ea23a8142ed 100644 --- a/mod/glossary/lib.php +++ b/mod/glossary/lib.php @@ -4220,16 +4220,17 @@ function glossary_get_coursemodule_info($coursemodule) { global $DB; $dbparams = ['id' => $coursemodule->instance]; - $fields = 'id, completionentries'; - if (!$choice = $DB->get_record('glossary', $dbparams, $fields)) { + $fields = 'id, name, completionentries'; + if (!$glossary = $DB->get_record('glossary', $dbparams, $fields)) { return false; } $result = new cached_cm_info(); + $result->name = $glossary->name; // Populate the custom completion rules as key => value pairs, but only if the completion mode is 'automatic'. if ($coursemodule->completion == COMPLETION_TRACKING_AUTOMATIC) { - $result->customdata['customcompletionrules']['completionentries'] = $choice->completionentries; + $result->customdata['customcompletionrules']['completionentries'] = $glossary->completionentries; } return $result; diff --git a/mod/lesson/lib.php b/mod/lesson/lib.php index 38ca1d4698d..80e904d58bb 100644 --- a/mod/lesson/lib.php +++ b/mod/lesson/lib.php @@ -1665,12 +1665,13 @@ function lesson_get_coursemodule_info($coursemodule) { global $DB; $dbparams = ['id' => $coursemodule->instance]; - $fields = 'id, completionendreached, completiontimespent'; + $fields = 'id, name, completionendreached, completiontimespent'; if (!$lesson = $DB->get_record('lesson', $dbparams, $fields)) { return false; } $result = new cached_cm_info(); + $result->name = $lesson->name; // Populate the custom completion rules as key => value pairs, but only if the completion mode is 'automatic'. if ($coursemodule->completion == COMPLETION_TRACKING_AUTOMATIC) { diff --git a/mod/quiz/lib.php b/mod/quiz/lib.php index 5041155460b..7ce1e229afe 100644 --- a/mod/quiz/lib.php +++ b/mod/quiz/lib.php @@ -2178,12 +2178,13 @@ function quiz_get_coursemodule_info($coursemodule) { global $DB; $dbparams = ['id' => $coursemodule->instance]; - $fields = 'id, completionattemptsexhausted, completionpass'; + $fields = 'id, name, completionattemptsexhausted, completionpass'; if (!$quiz = $DB->get_record('quiz', $dbparams, $fields)) { return false; } $result = new cached_cm_info(); + $result->name = $quiz->name; // Populate the custom completion rules as key => value pairs, but only if the completion mode is 'automatic'. if ($coursemodule->completion == COMPLETION_TRACKING_AUTOMATIC) { diff --git a/mod/scorm/lib.php b/mod/scorm/lib.php index 32ed0268a2b..1327d1a9145 100644 --- a/mod/scorm/lib.php +++ b/mod/scorm/lib.php @@ -1660,12 +1660,13 @@ function scorm_get_coursemodule_info($coursemodule) { global $DB; $dbparams = ['id' => $coursemodule->instance]; - $fields = 'id, completionstatusrequired, completionscorerequired, completionstatusallscos'; + $fields = 'id, name, completionstatusrequired, completionscorerequired, completionstatusallscos'; if (!$scorm = $DB->get_record('scorm', $dbparams, $fields)) { return false; } $result = new cached_cm_info(); + $result->name = $scorm->name; // Populate the custom completion rules as key => value pairs, but only if the completion mode is 'automatic'. if ($coursemodule->completion == COMPLETION_TRACKING_AUTOMATIC) { diff --git a/mod/survey/lib.php b/mod/survey/lib.php index e0b01c3ccf4..9ceeb69a69f 100644 --- a/mod/survey/lib.php +++ b/mod/survey/lib.php @@ -1161,12 +1161,13 @@ function survey_get_coursemodule_info($coursemodule) { global $DB; $dbparams = ['id' => $coursemodule->instance]; - $fields = 'id, completionsubmit'; + $fields = 'id, name, completionsubmit'; if (!$survey = $DB->get_record('survey', $dbparams, $fields)) { return false; } $result = new cached_cm_info(); + $result->name = $survey->name; // Populate the custom completion rules as key => value pairs, but only if the completion mode is 'automatic'. if ($coursemodule->completion == COMPLETION_TRACKING_AUTOMATIC) {