From 05c372767487e282a7db8e687084503fa831400c Mon Sep 17 00:00:00 2001 From: David Monllao Date: Thu, 10 Aug 2017 11:07:13 +0200 Subject: [PATCH] MDL-59779 analytics: Request cache for student and teacher archetypes --- analytics/classes/course.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/analytics/classes/course.php b/analytics/classes/course.php index aae57482310..791d7c2daef 100644 --- a/analytics/classes/course.php +++ b/analytics/classes/course.php @@ -140,10 +140,18 @@ class course implements \core_analytics\analysable { $this->now = time(); // Get the course users, including users assigned to student and teacher roles at an higher context. - $studentroles = array_keys(get_archetype_roles('student')); + $cache = \cache::make_from_params(\cache_store::MODE_REQUEST, 'core_analytics', 'rolearchetypes'); + + if (!$studentroles = $cache->get('student')) { + $studentroles = array_keys(get_archetype_roles('student')); + $cache->set('student', $studentroles); + } $this->studentids = $this->get_user_ids($studentroles); - $teacherroles = array_keys(get_archetype_roles('editingteacher') + get_archetype_roles('teacher')); + if (!$teacherroles = $cache->get('teacher')) { + $teacherroles = array_keys(get_archetype_roles('editingteacher') + get_archetype_roles('teacher')); + $cache->set('teacher', $teacherroles); + } $this->teacherids = $this->get_user_ids($teacherroles); }