From ac14767b14f69e7361ed962db5c331f63fbcebc2 Mon Sep 17 00:00:00 2001
From: Myriam Delaruelle <myriam.delaruelle@univ-lorraine.fr>
Date: Thu, 27 Feb 2025 15:46:11 +0100
Subject: [PATCH] fix activities

---
 amd/build/suivi.js | 10 ++++++++--
 suivi_unit.php     |  5 ++++-
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/amd/build/suivi.js b/amd/build/suivi.js
index 8ecf59e..b401c67 100644
--- a/amd/build/suivi.js
+++ b/amd/build/suivi.js
@@ -131,7 +131,10 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'],
     function fetchProgress(){
     	completeUrl=getCompleteUrl();
     	data={action: 'fetchprogress'};
-    	if(localStorage.groups && JSON.parse(localStorage.groups).length > 0){
+    	url=window.location.search;
+		urlParams = new URLSearchParams(url);
+		courseid=urlParams.get('courseid');
+    	if(localStorage.groups && JSON.parse(localStorage.groups).length > 0 && localStorage.courseid && localStorage.courseid==courseid){
     		var cachedgroupsid=JSON.parse(localStorage.groups);
     		var groupsid=[];
 	    	for (var i = 0; i < cachedgroupsid.length; i++) {
@@ -155,6 +158,7 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'],
 			    parsedrequest=JSON.parse(request);
         		data=calcPercentage(parsedrequest);
         		if(data.students.length<1000 && !localStorage.groups){
+        			localStorage.setItem("courseid",parsedrequest["courseid"]);
         			localStorage.setItem("groups",parsedrequest["groups"]);
         		}
         		
@@ -230,6 +234,7 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'],
         		
         		showHideStudents();
         		if(data.students.length<1000){
+        			localStorage.setItem("courseid",parsedrequest["courseid"] )
         			localStorage.setItem("groups",JSON.stringify(parsedrequest["groups"]));
         			
         		}
@@ -736,7 +741,8 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'],
             }
             updateGroupsFilterLabel();
         }); 
-        if(localStorage.groups && JSON.parse(localStorage.groups) != 0){
+        if(localStorage.groups && JSON.parse(localStorage.groups) != 0 && localStorage.courseid && localStorage.courseid==courseid ){
+        	console.log("on est passé dans le cache alors qu'on aurait pas dû");
         	var checkedGroups=JSON.parse(localStorage.groups);
             //var checkedGroups=JSON.parse(localStorage.groups);
             
diff --git a/suivi_unit.php b/suivi_unit.php
index c245781..c5f537a 100644
--- a/suivi_unit.php
+++ b/suivi_unit.php
@@ -556,8 +556,10 @@ else if (isset($_POST['action']) && !empty($_POST['action'])) {
     $modules = get_activities($completion, $activesectionid);
     $data["students"]=get_progress_students($modules, $arrayprogress, $groups, $activegroupsids, $activesectionid, $courseid, $cache, $completion);
     $data["modules"]=$modules;
-    $data["countstudents"]=count($data["students"]);
+    $data["countstudents"]=$countstudents;
+
     $data["groups"]=$activegroupsids;
+    $data["courseid"]=$courseid;
     //$data = set_links($data, $modules, $listoptions);
 
     echo json_encode($data);
@@ -599,6 +601,7 @@ else {
             $data["msg_success"] = $msg;
         }
 
+
       
 }
  
-- 
GitLab