From c4e58cd37df4962ba152175e33c1c0d74573de32 Mon Sep 17 00:00:00 2001 From: Myriam Delaruelle <myriam.delaruelle@univ-lorraine.fr> Date: Thu, 31 Oct 2024 09:39:06 +0100 Subject: [PATCH] disable caching for courses with 1000+ students --- amd/build/suivi.js | 11 +++++++++-- suivi_unit.php | 9 +++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/amd/build/suivi.js b/amd/build/suivi.js index bca339d..214243c 100644 --- a/amd/build/suivi.js +++ b/amd/build/suivi.js @@ -155,7 +155,11 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'], data=calcPercentage(JSON.parse(request)); //initGroupFilter(); changeSection(); - localStorage.setItem("groups",request); + if(data.students.length<1000){ + + localStorage.setItem("groups",request); + } + displayTotalGroupsFilter(false); } }); @@ -296,7 +300,10 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'], } - localStorage.setItem("activities",JSON.stringify(activitiesToStore)); + if(data.students.length<1000){ + localStorage.setItem("activities",JSON.stringify(activitiesToStore)); + } + if(changefilter==true){ reloadTable(data); } diff --git a/suivi_unit.php b/suivi_unit.php index 3deaa00..f16d40a 100644 --- a/suivi_unit.php +++ b/suivi_unit.php @@ -348,6 +348,7 @@ if (isset($_POST['groupsid'])) { } +$countstudents=count_enrolled_users($context); $cache = cache::make('format_iena', 'students'); //Si le progrès de chacun des groupes existe déjà en cache on va les charger, sinon on les récupère dans la BDD et on les stocke @@ -368,7 +369,11 @@ for($i=0; $i<count($activegroupsids); $i++){ '', $context ); - $cache->set($activegroupsids[$i], $progressrequest); + //On active le cache seulement s'il y a plus de x étudiants + if($countstudents<1000){ + $cache->set($activegroupsids[$i], $progressrequest); + } + $progress=$progressrequest; } $arrayprogress=(object) array_unique(array_merge((array) $arrayprogress, (array) $progress), SORT_REGULAR); @@ -486,7 +491,7 @@ else if (isset($_POST['action']) && !empty($_POST['action'])) { $data = set_filters($data, $filters, $symbols, $sections, array_values($groups), $groupsall->current_user_groups, $groupsall->othergroups, $activesectionid); $data = set_data($data, $modules, $arrayprogress, $groups, $activegroupsids, $activesectionid, $listoptions); - + $data["countstudents"]=$countstudents; if (isset($_GET["msg_success"])) { $msg = $_GET["msg_success"]; $data["msg_success"] = $msg; -- GitLab