diff --git a/amd/build/suivi.js b/amd/build/suivi.js
index e7b52053a359ef208911ed4b648f4a1447a69cb1..f37d6053d5cc86f7463e94679d94548a534e3d19 100644
--- a/amd/build/suivi.js
+++ b/amd/build/suivi.js
@@ -25,6 +25,7 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'],
        function($, ajax, templates, str) {
        	var all_selected=false;
        	var data=[];
+       	var cours_massif=false;
 
        	return{
        		
@@ -32,13 +33,13 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'],
        			
 	    		$("#group-select").on('change', function(e){
 	    			changeGroup();
+	    			e.stopPropagation();
 	    		});
 	    		
        		},
        		
-       		registerSubmit:function(infos){
-       			data=infos;
-       			console.log(infos);
+       		registerSubmit:function(){
+       
        			$("#id_submit_iena").on('click', function(e){
 	    			triggerAction(e);
 	    		});
@@ -65,7 +66,7 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'],
 		        $('.selectallactivities').click(function() {
 		            if ($(".selectallactivities").is(':checked')) {
 		                checkAllActivitiesFilter();
-		                displayActivities();
+		                showHideActivities();
 		            } else {
 		                $('.option').prop('checked', false);
 		                var message=str.get_string('selectedActivities', 'format_iena');
@@ -73,7 +74,7 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'],
 		                    $(".dropdown-text").html('0 '+localizedEditString);
 		                }); 
 		                $(".select-text").html(' Select');
-		                displayActivities();
+		                showHideActivities();
 		            }
 		        });
 		        //initActivityFilter();
@@ -90,7 +91,7 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'],
 		                checkAllGroupsFilter();
 		            } else {
 		                $('.group-option').prop('checked', false);
-		                displayTotalGroupsFilter(); 
+		                updateGroupsFilterLabel(); 
 		            	
 		            }
 		            changeGroup();
@@ -110,8 +111,9 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'],
        	}
 
     function fetchProgress(){
+    	console.log("non plutôt on fetch le progress")
     	completeUrl=getCompleteUrl();
-    	console.log(completeUrl);
+    	
     	$.ajax({ url: completeUrl,
         	data: {action: 'fetchprogress'},
         	type: 'post',
@@ -124,13 +126,12 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'],
         		}
         		initActivityFilter(false);
 		    	displayTotalActivitiesFilter(false);
-		    	displayTotalGroupsFilter(false);
-        		displayActivities(false);
+		    	updateGroupsFilterLabel(false);
+        		showHideActivities(false);
         		initGroupFilter(false);
         		registerGroupFilter();
         		changeSection(false);
         		reloadTable(data);
-        		//displayTotalGroupsFilter(false);
         		return data;
 			}
 		});
@@ -145,6 +146,8 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'],
 		})
     }
 
+
+
     function getCompleteUrl(){
     	url=window.location.search;
     	urlParams = new URLSearchParams(url);
@@ -165,14 +168,15 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'],
     	return completeUrl;
     }
 
+    //À changer pour intégrer une fonction plus générique 
     function changeGroup(){
+    	console.log("on va changer le groupe ?");
     	var completeUrl=getCompleteUrl();
     	var groupscheckboxes= $('input[name="groupoptions[]"]:checked');
     	var groupsid=[];
     	for (var i = 0; i < groupscheckboxes.length; i++) {
     		groupsid.push(groupscheckboxes[i].value);
     	}
-    	console.log(groupsid);
     	loadMessage("loading");
     	if(groupsid.length==0){
     		groupsid.push(-2);
@@ -183,13 +187,15 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'],
         	success: function(request) { 
         		data=calcPercentage(JSON.parse(request));
         		//initGroupFilter();
+        		//
+        		
         		changeSection();
         		if(data.students.length<1000){
         			
         			localStorage.setItem("groups",request);
         		}
         		
-        		displayTotalGroupsFilter(false);
+        		updateGroupsFilterLabel(false);
 			}
 		});
     }
@@ -261,6 +267,8 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'],
 
     //on va devoir calculer le pourcentage, check la completion et reload la table à chaque fois
 
+
+
     function changeSection(changefilter=true){
     	loadMessage("loading");
     	sectionid=$("#section-select").val();
@@ -310,10 +318,11 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'],
 
 
     //Affiche/cache dynamiquement les activités sélectionnées
-    function displayActivities(changefilter=true){
+    function showHideActivities(changefilter=true){
         var arrayActivitiesID=[];
         var activitiesToStore=[];
         var activities = $('input[name="options[]"]');
+        console.log(data.modules);
         for(var i=0; i<activities.length;i++){
 
             prog=data.modules.find(element => element.id === activities[i].value);
@@ -357,7 +366,7 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'],
 		});	
     }
 
-    //Reload table with new parameters.
+    //Reload table with new parameters JUST FOR DISPLAYING THE TABLE.
     function reloadTable(params){
     	console.log("on est dans le reloadTable")
     	url=getCompleteUrl();
@@ -375,7 +384,7 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'],
     }
 
 
-
+   
     //Récupère les étudiants sélectionnées par les checkbox
 	function getSelectedStudents(){
 		var selectedChecks=$("#table-body input:checked");
@@ -567,6 +576,79 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'],
 	}
 
 
+    
+
+    //Update activities filter label
+    function updateActivitiesFilterLabel(){
+        var total = $('input[name="options[]"]:checked').length;
+        if(total == $('input[name="options[]"]').length){
+            var message=str.get_string('allActivities', 'format_iena');
+            $.when(message).done(function(localizedEditString) {
+                $(".dropdown-text").html(localizedEditString);
+            }); 
+        }
+        else{
+            var message=str.get_string('selectedActivities', 'format_iena');
+            $.when(message).done(function(localizedEditString) {
+                $(".dropdown-text").html(total + ' '+localizedEditString);
+            }); 
+        }
+    }
+  
+    
+
+    //Coche toutes les activités quand on change de section
+    function checkAllActivitiesFilter(){
+        $('.selectallactivities').prop('checked', true);
+        $('.option').prop('checked', true);
+        updateActivitiesFilterLabel();
+        $(".select-text").html(' Deselect');
+        
+    }
+
+    
+
+     
+
+    //Coche tous les groupes quand le select all est coché
+    function checkAllGroupsFilter(){
+        $('.selectallgroups').prop('checked', true);
+        $('.group-option').prop('checked', true);
+        //changeGroup();
+        $(".select-text").html(' Deselect');
+        
+    }
+
+
+    //Update activities filter label
+    function updateGroupsFilterLabel(){
+        var total = $('input[name="groupoptions[]"]:checked').length;
+        if(total == $('input[name="groupoptions[]"]').length){
+            var message=str.get_string('allGroups', 'format_iena');
+            $.when(message).done(function(localizedEditString) {
+                $(".dropdown-text-group").html(localizedEditString);
+            }); 
+        }
+        else{
+            var message=str.get_string('selectedGroups', 'format_iena');
+            $.when(message).done(function(localizedEditString) {
+                $(".dropdown-text-group").html(total + ' '+localizedEditString);
+            }); 
+        }
+    }
+  
+
+
+
+    /*Etapes 
+    Premier chargement :
+    - On initialise les filtres (on les register)
+    - On a chargé les données en même temps (avec ces filtres par défaut)
+    - On affiche/cache les modules selon la section
+	- On calcule le pourcentage selon les modules VISIBLES
+	- On affiche/cache les étudiants selon le % d'achèvement
+	*/
+
     //On va recharger dynamiquement les options donc on doit recréer les événements à chaque fois qu'on change de section
     function registerActivityFilter(){
         $("input[type='checkbox'].justone-activity").on('click', function(e){
@@ -581,30 +663,29 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'],
                 $('.selectallactivities').prop('checked', false);
                 $(".select-text").html(' Select');
             }
-            displayTotalActivitiesFilter();
-            displayActivities();
+            updateActivitiesFilterLabel();
+            showHideActivities();
         });
 
         
     }
 
-    //Update activities filter label
-    function displayTotalActivitiesFilter(){
-        var total = $('input[name="options[]"]:checked').length;
-        if(total == $('input[name="options[]"]').length){
-            var message=str.get_string('allActivities', 'format_iena');
-            $.when(message).done(function(localizedEditString) {
-                $(".dropdown-text").html(localizedEditString);
-            }); 
-        }
-        else{
-            var message=str.get_string('selectedActivities', 'format_iena');
-            $.when(message).done(function(localizedEditString) {
-                $(".dropdown-text").html(total + ' '+localizedEditString);
-            }); 
-        }
+    function registerGroupFilter(){
+        $("input[type='checkbox'].justone-group").on('click', function(e){
+            e.stopPropagation();
+             var a = $("input[type='checkbox'].justone-group");
+            if(a.length == a.filter(":checked").length){
+                $('.selectallgroups').prop('checked', true);
+            }
+            else {
+                $('.selectallgroups').prop('checked', false);
+            }
+            //Pourquoi ?
+            //displayTotalActivitiesFilter();
+        }); 
     }
-  
+
+
     //Stocke le filtre des activités en localStorage pour ne pas avoir 50 id dans l'url
     //On fait bien attention à rétablir cocher le selectall si toutes les activités sont bien cochées
     function initActivityFilter(){
@@ -628,37 +709,10 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'],
 	                }
 	            }
             }
-            
-
         }
     }
 
-    //Coche toutes les activités quand on change de section
-    function checkAllActivitiesFilter(){
-        $('.selectallactivities').prop('checked', true);
-        $('.option').prop('checked', true);
-        displayTotalActivitiesFilter();
-        $(".select-text").html(' Deselect');
-        
-    }
-
-    function registerGroupFilter(){
-        $("input[type='checkbox'].justone-group").on('click', function(e){
-            e.stopPropagation();
-             var a = $("input[type='checkbox'].justone-group");
-            if(a.length == a.filter(":checked").length){
-                $('.selectallgroups').prop('checked', true);
-            }
-            else {
-                $('.selectallgroups').prop('checked', false);
-            }
-            displayTotalActivitiesFilter();
-        });
-
-        
-    }
-
-     function initGroupFilter(){
+    function initGroupFilter(){
         if(localStorage.groups){
             var checkedGroups=JSON.parse(localStorage.groups);
             var groups=$("input[type='checkbox'].justone-group");
@@ -687,48 +741,13 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'],
         	}
         	
         }
-        displayTotalActivitiesFilter();
-    }
-
-    //Coche tous les groupes quand le select all est coché
-    function checkAllGroupsFilter(){
-        $('.selectallgroups').prop('checked', true);
-        $('.group-option').prop('checked', true);
-        //changeGroup();
-        $(".select-text").html(' Deselect');
-        
-    }
-
-
-    //Update activities filter label
-    function displayTotalGroupsFilter(){
-        var total = $('input[name="groupoptions[]"]:checked').length;
-        if(total == $('input[name="groupoptions[]"]').length){
-            var message=str.get_string('allGroups', 'format_iena');
-            $.when(message).done(function(localizedEditString) {
-                $(".dropdown-text-group").html(localizedEditString);
-            }); 
-        }
-        else{
-            var message=str.get_string('selectedGroups', 'format_iena');
-            $.when(message).done(function(localizedEditString) {
-                $(".dropdown-text-group").html(total + ' '+localizedEditString);
-            }); 
-        }
+        //Pourquoi ?
+       // displayTotalActivitiesFilter();
     }
-  
-
 
 
-    /*Etapes 
-    Premier chargement :
-    - On initialise les filtres (on les register)
-    - On a chargé les données en même temps (avec ces filtres par défaut)
-    - On affiche/cache les modules selon la section
-	- On calcule le pourcentage selon les modules VISIBLES
-	- On affiche/cache les étudiants selon le % d'achèvement
-	*/
 
+   
 
   
 });
diff --git a/suivi_unit.php b/suivi_unit.php
index b5c3bb9dce7f0dfeeb91eaa52cc8bf6cc835f3fb..f102f167ff8176e4c519e2d507ae69ae00764647 100644
--- a/suivi_unit.php
+++ b/suivi_unit.php
@@ -166,6 +166,7 @@ function get_activities($completion, $activesectionid) {
 }
 
 function get_sections($activesectionid) {
+    error_log("on passe par ici alors qu'on devrait pas");
     global $COURSE;
     // Liste des sections du cours.
     $modinfo = get_fast_modinfo($COURSE->id);
@@ -185,7 +186,7 @@ function get_sections($activesectionid) {
     return $sections;
 }
 
-function set_filters($data, $filters, $symbols, $sections, $groups, $currentusergroups, $othergroups, $activesectionid) {
+function set_filters($data, $filters, $symbols, $sections, $currentusergroups, $othergroups, $activesectionid) {
     if (isset($_GET['filter'])) {
         $filtercomplete = $_GET['filter'];
         $symbols[mb_substr($filtercomplete, 0, 1, 'UTF-8')]->selected = "selected";
@@ -391,9 +392,10 @@ if (isset($_GET['sectionid'])) {
 }
 
 // On récupère les ids des membres parce que dans l'excel on veut savoir qui appartient à quel groupe.
-$groups = groups_get_all_groups($COURSE->id, 0, 0, 'g.*', true);
+
 $renderer = $PAGE->get_renderer('format_iena');
 
+
 //Si on cherche les détails d'une activité
 if (isset($_POST['action']) && $_POST['action'] == "details") {
     require_once($CFG->libdir . '/gradelib.php');
@@ -453,6 +455,8 @@ if (isset($_POST['action']) && $_POST['action'] == "details") {
 } 
 // If a post is sent trought the page --> Si on change les filtres (de groupes), le template est appelé en JS
 else if (isset($_POST['action']) && !empty($_POST['action'])) {
+    error_log("je change le filtre des groupes");
+    $groups = groups_get_all_groups($COURSE->id, 0, 0, 'g.*', true);
     $data = [];
     $modules = get_activities($completion, $activesectionid);
     $data["students"]=get_progress_students($modules, $arrayprogress, $groups, $activegroupsids, $activesectionid, $courseid, $cache, $completion);
@@ -464,9 +468,9 @@ else if (isset($_POST['action']) && !empty($_POST['action'])) {
 else {
     init_page($course, $PAGE);
     echo $OUTPUT->header();
-
+    error_log("je load juste la page");
     //$progress=$cache->get($activegroupids);
-    
+    $groups = groups_get_all_groups($COURSE->id, 0, 0, 'g.*', true);
     $data = [];
     //Si la complétion du cours n'est pas activée on redirige l'enseignant vers l'interface pour l'activer
     if(!$COURSE->enablecompletion){
@@ -489,8 +493,8 @@ else {
         //$groups = $groupsall->groups;
         $sections = get_sections($activesectionid);
         //$data["countstudents"]=$countstudents;
-        $data = set_filters($data, $filters, $symbols, $sections, array_values($groups), $groupsall->current_user_groups, $groupsall->othergroups, $activesectionid);
-        $data = set_data($data, $modules, $groups, $activegroupsids, $activesectionid, $listoptions);
+        $data = set_filters($data, $filters, $symbols, $sections,  $groupsall->current_user_groups, $groupsall->othergroups, $activesectionid);
+        //$data = set_data($data, $modules, $groups, $activegroupsids, $activesectionid, $listoptions);
         
         if (isset($_GET["msg_success"])) {
             $msg = $_GET["msg_success"];
diff --git a/templates/suivi.mustache b/templates/suivi.mustache
index 6923f49712a8aa63981c5ee2b1431873286230be..e16d344edd8f983137f374fc532c9f05a227f83d 100644
--- a/templates/suivi.mustache
+++ b/templates/suivi.mustache
@@ -155,7 +155,7 @@
 {{#js}}
 require(['format_iena/suivi', 'core/templates'], function(module) {
     module.registerFilters();
-   	module.registerSubmit({{{ data }}});
+   	module.registerSubmit();
    	module.registerSelectAllActivitiesFilter();
    	module.registerSelectAllGroupsFilter();
    	module.initTable();