diff --git a/CHANGELOG.md b/CHANGELOG.md
index b2f441cb74443ff4475e413ca49c74d2f6b5b81b..1129ad2bc99d35da7097054aa44f123029969d48 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -23,7 +23,7 @@ Les ronds de couleur qui indiquent l'état d'achèvement des activité est modif
 
 Toute la barre de progression ne base ses informations que sur les activités qui ont un suivi d'achèvement. L'ancien système de suivi à paramétrer en parallèle du suivi d'achèvement n'est plus utilisé. 
 
-La largeur des labels contenant le nom des sections est fixée à 300px afin que les ronds à droite soient toujours alignés (but esthétique). La largeur correspond à un nom de section de 5 mots environ. 
+La largeur des labels contenant le nom des sections est fixée à 300px afin que les ronds à droite soient toujours alignés. La largeur correspond à un nom de section de 5 mots environ. 
 
 ## Pourcentage de progression dans les entêtes de section
 
@@ -33,7 +33,7 @@ Le pourcentage de progression dans les entêtes de section est juste et ne peut
 
 ### Tableau de suivi (enseignant)
 
-A présent, toutes les activités sous suivi d'achèvement apparaissent dans le tableau et seulement celles-ci. La sélection des activités à suivre n'existe plus car elle était un doublon du suivi d'achèvement et avait une faible plus-value. Pour qu'une activité apparaisse il faut activer le suivi d'achèvement. 
+A présent, toutes les activités sous suivi d'achèvement apparaissent dans le tableau et seulement celles-ci. La sélection des activités à suivre n'existe plus car elle était un doublon du suivi d'achèvement natif de Moodle et avait une faible plus-value. Pour qu'une activité apparaisse il faut activer le suivi d'achèvement. 
 
 Les activités cachées mais disponibles s'affichent forcément dans la barre de progression tant qu'elles sont sous suivi d'achèvement. Sur le principe, toute activité pour laquelle on a jugé bon d'activer le suivi d'achèvement est bien censée apparaître dans les tableau de suivi de l'étudiant et de l'enseignant. 
 
@@ -54,7 +54,7 @@ Les cases sont colorées selon l'état d'achèvement selon les mêmes règles qu
 
 La performance est améliorée, notamment lors de l'affichage d'un seul groupe (au lieu de tous les étudiants). 
 
-La sélection d'étudiants en vue d'envoyer un message est préservée en utilisant le filtre de section et le filtre de pourcentage d'achèvement, mais pas le filtre de groupe, ce qui n'aurait pas d'intérêt en principe de toutes façon. On peut donc appliquez différents filtres de section et de % d'achèvement en sélectionnant au fur et à mesure plusieurs étudiants puis leur envoyer un message. 
+La sélection d'étudiants en vue d'envoyer un message est préservée en utilisant le filtre de section et le filtre de pourcentage d'achèvement, mais pas le filtre de groupe. On peut donc appliquez différents filtres de section et de % d'achèvement en sélectionnant au fur et à mesure plusieurs étudiants puis leur envoyer un message. 
 
 Le filtre sur le degré d'achèvement est plus précis. Il permet de sélectionner tous, = 100%, = 0%, < 25%, < 50%, < 100% et >= 50%, >= 25%, >= 0%. 
 
@@ -79,6 +79,8 @@ Le score détaillé de l'étudiant (barre de progression) et le score présent d
 
 Le score présent dans l'entête de chaque section s'affiche dès que la section comporte des activités sous suivi d'achèvement, même si aucune n'est effectuée (score de 0%). 
 
+---
+
 # 12/02/19
 
 ## Entête du cours
@@ -103,3 +105,44 @@ Lors de l'envoi d'un message à certains étudiants sélectionnés, si aucun des
 
 Correction du fait que le filtre affichait >=0 au lieu de >0. 
 
+# 23/05/2019
+
+__MAJ en 3.7__
+
+## Suivi des étudiants
+
+### Tableau de suivi
+
+Le téléchargement du tableau de suivi inclus les groupes même quand tout le tableau est téléchargé. Cette opération peut être longue (+ de 10 secondes), mais des mécanismes existent pour éviter que des responsables de groupes chargent la vue pour tous les groupes dans des cours volumineux (plusieurs centaines d'étudiants). 
+
+Le texte explicatif du tableau à téléchargé est amélioré pour expliquer la notation (0, 1, 0.5 et 2). 
+
+L'envoi de message à tous les étudiants sélectionné prend bien en compte le filtre et le groupe. 
+
+### Message quand pas d'activité à suivre
+
+Lorsqu'une section ne contient pas d'activité suivies, afficher un message au lieu de la liste des étudiants avec aucune activité en colonne et 0% pour chaque. Il indique qu'aucune activité n'est suivie pour cette section. Le message indiquant qu'aucun étudiant n'est retourné par les filtres ne peut apparaître que s'il y a des activités suivies. 
+
+## Cron
+
+### Paramètres
+
+[x] Changement des jours de `"*/1" à "*"` pour envoyer tous les jours. 
+
+### Notifications
+
+Les messages ayant évolués en chat ou notifications, le cron est modifié pour envoyer des notifications. 
+
+Cliquer sur le notification envoie directement vers la section du cours considérée. 
+
+## Page du cours
+
+### Description du cours
+
+Le lien pour afficher l'entête ne s'affiche plus s'il n'y a pas de description du cours. Les descriptions vides type `<p><br></p>` que les WYSIWYG de MOODLE aiment bien faire ne s'affichent pas non plus. 
+
+## Divers
+
+Nettoyage du code. 
+
+Suppression de paramètres de cours inutiles. 
diff --git a/README.md b/README.md
index 4364f5ec583d40a9762eb66bef605fe60ea7c81a..02fc15510035c7a0b501c576f6d7fb46be83874f 100644
--- a/README.md
+++ b/README.md
@@ -12,7 +12,7 @@ This plugin is a new course format for MOODLE. It change the course page interfa
 
 ## Compatibility
 
-MOODLE 3.5
+MOODLE 3.7
 
 ## Contribution
 
@@ -26,6 +26,10 @@ Pour tout autre question : <iena-contact@univ-lorraine.fr>.
 
 Other : <iena-contact@univ-lorraine.fr>. 
 
+## Installation
+
+Ce plugin _doit_ être installé au chemin suivant : `/course/format/iena`. 
+
 ## Activation et paramétrage
 
 Rendez-vous dans les paramètres (généraux) du cours et sélectionnez ce format de cours provisoirement nommé "Format de cours hybride". Une fois sélectionné, vous pourrez ajuster les paramètres propres à ce format de cours. 
@@ -34,17 +38,19 @@ Rendez-vous dans les paramètres (généraux) du cours et sélectionnez ce forma
 
 ### Présentation du cours
 
-Le cours est présenté d'une manière plus structurée et claire permetant une meilleure lecture par l'étudiant. 
+Le cours est présenté d'une manière plus fortement structurée permetant une meilleure lecture par l'étudiant. 
 
-La description du cours est visible sur la page de cours. La description des sections est pliable / dépliable pour permettre d'y placer une description longue et informative d'une séance de cours sans pour autant gêner l'affichage de la page. 
+La description du cours est visible sur la page de cours. La description des sections est pliable / dépliable pour permettre d'y placer une description longue et informative d'une séance de cours sans pour autant gêner, allonger, l'affichage de la page. 
 
 ### Suivi de progression
 
-Requis : avoir activé le "suivi d'achèvement d'activité" de MOODLE dans les paramètres généraux du cours (et éventuellement dans l'administration). 
+Requis : avoir activé le "suivi d'achèvement d'activité" de MOODLE dans les paramètres généraux du cours (et éventuellement dans l'administration du site). 
+
+Les ressources ou activités dont l'achèvement est paramétré (dans les paramètres de l'activité) apparaissent dans une barre de progression en haut de page pour l'étudiant. Des pourcentages de progression sont disponibles pour chaque section, et des éléments colorés suivant l'état d'achèvement permettent de connaître son avancement dans le cours. 
 
-Les ressources ou activité dont l'achèvement est paramétré (dans les paramètres de l'activité) apparaissent dans une barre de progression en haut de page pour l'étudiant. Des pourcentages de progression sont disponibles pour chaque section et des éléments colorés suivant l'état d'achèvement permettent de connaître son avancement dans le cours. 
+L'enseignant peut accéder à un tableau de suivi par section, par groupe. Le tableau est filtrable par pourcentage d'achèvement et téléchargeable. 
 
-L'enseignant peut accéder à un tableau de suivi par section, par groupe. Le tableau est filtrable par pourcentage d'achèvement et téléchargeable. Codes couleurs dans l'interface et notation dans le tableau téléchargé : 
+Codes couleurs dans l'interface et notation dans le tableau téléchargé : 
 
 - Non fait : vert clair (0)
 - Fait (si activité non notée) : vert foncé (1)
@@ -55,8 +61,15 @@ Le tableau de suivi permet de sélectionner des étudiants et de leur envoyer un
 
 ### Modalités d'enseignement
 
-Un label présence / distance et une date peut être placé dans l'entête d'une section / séance de cours afin d'indiquer des changements de modalité d'enseignement dans des dispositifs hybride. Cette fonction est liée à un rappel automatique par mail. 
+Un label présence / distance et une date peut être placé dans l'entête d'une section / séance de cours afin d'indiquer des changements de modalité d'enseignement dans des dispositifs hybride. Cette fonction est liée à un rappel automatique par mail. La date et l'heure peuvent être spécifiées. 
 
 ### Contact enseignant
 
 Un bouton "Enseignant" en haut à droite permet à l'étudiant d'avoir la liste des enseignants du cours et de les contacter facilement par messagerie interne. Par défaut, les messages interne de MOODLE reçus hors connexion sont transmis par mail. 
+
+## Roadmap
+
+- Refactorisation du code. 
+- Mode édition intégré pour l'ajout de ressources et activités et modification de leurs paramètres. 
+- Evolution du design de la page pour la rapprocher de l'apparence du plugin _Parcours_ plus esthétique. 
+- Ne pas afficher les filtres par groupe quand il n'y en a pas. 
diff --git a/classes/task/sync_task_iena_message.php b/classes/task/sync_task_iena_message.php
index ae32edcf816ed0f7265e964764cc0ac16e7ed16c..d83414eac31e10c1ab6f090e8d33732aadaad14a 100644
--- a/classes/task/sync_task_iena_message.php
+++ b/classes/task/sync_task_iena_message.php
@@ -53,9 +53,9 @@
 			global $CFG;
 			require_once($CFG->dirroot . '/course/format/iena/entity/course_format_iena_cron_action.php');
 			$cron_test = new \course_format_iena_cron_action();
-			echo 'send message start';
+			// echo 'send message start';
 			$cron_test->cron_message();
-			echo 'send message stop';
+			// echo 'send message stop';
 		}
 		
 	}
\ No newline at end of file
diff --git a/db/install.xml b/db/install.xml
index a7f9cc1ab83b2d1c730655b868bab4e5a7c78af3..1f5bd9cdb18530ead8de538e3fff2129175ca47e 100644
--- a/db/install.xml
+++ b/db/install.xml
@@ -21,17 +21,5 @@
         <KEY NAME="primary" TYPE="primary" FIELDS="id"/>
       </KEYS>
     </TABLE>
-    <TABLE NAME="format_iena_settings" COMMENT="Default comment for the table, please edit me">
-      <FIELDS>
-        <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="true"/>
-        <FIELD NAME="courseid" TYPE="int" LENGTH="5" NOTNULL="false" SEQUENCE="false"/>
-        <FIELD NAME="cmid" TYPE="int" LENGTH="5" NOTNULL="false" SEQUENCE="false" COMMENT="Course module id"/>
-        <FIELD NAME="hide" TYPE="int" LENGTH="1" NOTNULL="false" SEQUENCE="false"/>
-        <FIELD NAME="sectionid" TYPE="int" LENGTH="5" NOTNULL="false" SEQUENCE="false"/>
-      </FIELDS>
-      <KEYS>
-        <KEY NAME="primary" TYPE="primary" FIELDS="id"/>
-      </KEYS>
-    </TABLE>
   </TABLES>
 </XMLDB>
\ No newline at end of file
diff --git a/db/tasks.php b/db/tasks.php
index d7c7f2ed34d41f7297056fbbfff62de38401560c..9435163d05819a90af345753b6bab2864dd0a1eb 100644
--- a/db/tasks.php
+++ b/db/tasks.php
@@ -51,7 +51,7 @@
 			'blocking' => 0,
 			'minute' => '0',
 			'hour' => '22',
-			'day' => '*/1',
+			'day' => '*',
 			'month' => '*',
 			'dayofweek' => '*'
 		)
diff --git a/entity/course_format_iena_cron_action.php b/entity/course_format_iena_cron_action.php
index c177bb0e84ab97a47ff316c8b4e5394c95b4cd76..de4e6af017b6c1c078fbc51c5495c036bd8eb72b 100644
--- a/entity/course_format_iena_cron_action.php
+++ b/entity/course_format_iena_cron_action.php
@@ -34,8 +34,8 @@
 	 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 	 */
 	
-	include('../../lib.php');
-	include('../../../../config.php');
+	// include('../../lib.php');
+	// include('../../../../config.php');
 	
 	
 	class course_format_iena_cron_action
@@ -183,19 +183,6 @@
 			$course = $DB->get_record('course', array('id' => $requete->course), '*', MUST_EXIST);
 
 			$messageContent = false;
-			//Here we can change value
-			/*
-			
-			<h1>Rappel</h1>
-			
-			<h2>$course->fullname</h2>
-
-			<p>La séance de cours <strong>$requete->name</strong> aura lieu le 00/00 à 00:00.</p>
-			
-			<p>Le travail de la séance de cours à distance <strong>$requete->name</strong> est à finir pour le 00/00 à 00:00.</p>
-
-			<p>Lien vers le cours : <a href='" . $CFG->wwwroot . "/course/view.php?id=" . $course->id . "'>" . $course->fullname . "</a></p>
-			*/
 
 			$messageContent .= "<h1>Rappel</h1>";
 			$messageContent .= "<h2>$course->fullname</h2>";
@@ -213,12 +200,6 @@
 			}
 
 			$messageContent .= "<p>Lien vers le cours : <a href='" . $CFG->wwwroot . "/course/view.php?id=" . $course->id . "'>" . $course->fullname . "</a></p>";
-			
-			// $messageContent .= "<h1>Rappel</h1>";
-			// $messageContent .= "<br> Cours : " . $course->fullname;
-			// $messageContent .= "<br> Séance : " . $requete->name;
-			// $messageContent .= "<br> Date de la séance : " . $section->date_rendu;
-			// $messageContent .= "<br> Lien : <a href='" . $CFG->wwwroot . "/course/view.php?id=" . $course->id . "'>" . $course->fullname . "</a>";
 
 			//Create message
 			$message = new \core\message\message();
@@ -226,11 +207,16 @@
 			$message->name = 'instantmessage';
 			$message->userfrom = $USER;
 			$message->courseid = $course->id;
-			$message->notification = '0';
+			$message->notification = '1';
+			$message->contexturl = $CFG->wwwroot . "/course/view.php?id=" . $course->id . "#section-" . $requete->section;
+			$message->contexturlname = $course->fullname;
 			$message->fullmessageformat = FORMAT_HTML;
+			$log = "Messages sent for section $requete->name of course $course->fullname (id $course->id) to ";
+			$studs_counter = 0;
 			foreach ($students as $student) {
-				echo get_string('snd_msg_to', 'format_iena') . $student->firstname . ' ' . $student->lastname;
+				$studs_counter++;
 				$message->userto = $student;
+				$studs[] = 
 				$message->smallmessage = $messageContent;
 				$message->fullmessage = $messageContent;
 				$message->fullmessagehtml = $messageContent;
@@ -238,6 +224,8 @@
 				// $message->subject = $messageContent;
 				message_send($message);
 			}
+			$log .= $studs_counter . " students.";
+			echo $log;
 		}
 		
 		
diff --git a/entity/course_format_iena_section_ressources.php b/entity/course_format_iena_section_ressources.php
index 12fd188f4bd6209de3c26e82b597603257c57fe0..0bb06ec59622b1216abd70d72eb03d8448282862 100644
--- a/entity/course_format_iena_section_ressources.php
+++ b/entity/course_format_iena_section_ressources.php
@@ -110,40 +110,19 @@
 
 			// search only modules by general course format parameters
 			// count only if it is follewed by teacher
-			$if_followed = $course->restrictedbreadcrum == 1;
+			// $if_followed = $course->restrictedbreadcrum == 1;
 			// count even if it is "hidden on course page but available"
 			$even_if_hidden_but_available = $course->allmodulesbreadcrum == 1;
 
-			if ( $if_followed ) {
-				if ( $even_if_hidden_but_available ) {
-					$requete = $DB->get_records_sql('SELECT cm.id FROM {course_modules} as cm
-						INNER JOIN {format_iena_settings} as iena on cm.id = iena.cmid
-						WHERE cm.section = ? 
-						AND cm.visible = 1
-						AND iena.hide = 1
-						AND cm.deletioninprogress = 0
-						AND cm.completion != 0', array($id_section));
-				} else {
-					$requete = $DB->get_records_sql('SELECT cm.id FROM {course_modules} as cm
-						INNER JOIN {format_iena_settings} as iena on cm.id = iena.cmid
-						WHERE cm.section = ? 
-						AND cm.visible = 1
-						AND cm.visibleoncoursepage = 1
-						AND iena.hide = 1
-						AND cm.deletioninprogress = 0
-						AND cm.completion != 0', array($id_section));
-				}
+			if ( $even_if_hidden_but_available ) {
+				$requete = $DB->get_records_sql('SELECT id FROM {course_modules} WHERE section = ? AND deletioninprogress = 0
+					AND visible = 1
+					AND completion != 0', array($id_section));
 			} else {
-				if ( $even_if_hidden_but_available ) {
-					$requete = $DB->get_records_sql('SELECT id FROM {course_modules} WHERE section = ? AND deletioninprogress = 0
-						AND visible = 1
-						AND completion != 0', array($id_section));
-				} else {
-					$requete = $DB->get_records_sql('SELECT id FROM {course_modules} WHERE section = ? AND deletioninprogress = 0
-						AND visible = 1
-						AND visibleoncoursepage = 1
-						AND completion != 0', array($id_section));
-				}
+				$requete = $DB->get_records_sql('SELECT id FROM {course_modules} WHERE section = ? AND deletioninprogress = 0
+					AND visible = 1
+					AND visibleoncoursepage = 1
+					AND completion != 0', array($id_section));
 			}
 
 			// if ($course->restrictedbreadcrum == 1) {
diff --git a/format.php b/format.php
index db34f8ddff071b60ebef866275c0b32a9ab9f960..af89b14fd4ed8879b74242d3b4d96f838a0471a5 100644
--- a/format.php
+++ b/format.php
@@ -57,7 +57,8 @@
 		course_set_marker($course->id, $marker);
 	}
 	$course = course_get_format($course)->get_course();
-	course_create_sections_if_missing($course, range(0, $course->numsections));
+	// course_create_sections_if_missing($course, range(0, $course->numsections));
+	course_create_sections_if_missing($course, 0);
 	$renderer = $PAGE->get_renderer('format_iena');
 	if (!empty($displaysection)) {
 		$renderer->print_single_section_page($course, null, null, null, null, $displaysection);
diff --git a/lang/en/format_iena.php b/lang/en/format_iena.php
index 092a2256e26f1289a277d874c6246b365a355c57..6fee5644453c70df9a353fc09069e18ddd96ba8f 100644
--- a/lang/en/format_iena.php
+++ b/lang/en/format_iena.php
@@ -80,4 +80,4 @@ By definition an unnamed section is displayed as <strong>section [N]</strong>.';
 	$string['section'] = 'Section';
 	$string['hide_section'] = 'HIDE section ';
 	$string['show_section'] = 'SHOW section ';
-	$string['sdn_msg_to'] = 'Send a message to';
+
diff --git a/lang/fr/format_iena.php b/lang/fr/format_iena.php
index 4b167961b9195c8a502a592194b97fd3c7472012..3d63789aad9133ae328f8428a6deb00a44beedd3 100644
--- a/lang/fr/format_iena.php
+++ b/lang/fr/format_iena.php
@@ -80,4 +80,4 @@ By definition an unnamed section is displayed as <strong>section [N]</strong>.';
 	$string['section'] = 'Section';
 	$string['hide_section'] = 'CACHER la section ';
 	$string['show_section'] = 'MONTRER la section ';
-	$string['sdn_msg_to'] = 'Envoyer un message à ';
+
diff --git a/lib.php b/lib.php
index 62902a42fe33fcb2d70d9a791418a32016662410..ac15dea8d3c5672bf2a07a4ae124d4900fb0858d 100644
--- a/lib.php
+++ b/lib.php
@@ -41,26 +41,10 @@
 			static $courseformatoptions = false;
 			if ($courseformatoptions === false) {
 				// $courseconfig = get_config('moodlecourse');
-				// $courseformatoptions['numsections'] = array(
-				// 	'default' => $courseconfig->numsections,
-				// 	'type' => PARAM_INT,
-				// );
-				$courseformatoptions['viewbreadcrum'] = array(
-					'default' => 1,
-					'type' => PARAM_INT,
-				);
-				$courseformatoptions['restrictedbreadcrum'] = array(
-					'default' => 0,
-					'type' => PARAM_INT,
-				);
 				$courseformatoptions['allmodulesbreadcrum'] = array(
 					'default' => 0,
 					'type' => PARAM_INT,
 				);
-				$courseformatoptions['autoattendance'] = array(
-					'default' => 0,
-					'type' => PARAM_INT,
-				);
 				$courseformatoptions['viewiconmessage'] = array(
 					'default' => 1,
 					'type' => PARAM_INT,
@@ -84,26 +68,11 @@
 				$choiceTab = array();
 				$choiceTab['1'] = get_string('yes', 'format_iena');
 				$choiceTab['0'] = get_string('no', 'format_iena');
-				$courseformatoptionsedit['viewbreadcrum'] = array(
-					'label' => get_string('hide_bread_crum', 'format_iena'),
-					'element_type' => 'select',
-					'element_attributes' => array($choiceTab),
-				);
-				$courseformatoptionsedit['restrictedbreadcrum'] = array(
-					'label' => "N'afficher les activités dans la progression que si elles sont suivies dans une section.",
-					'element_type' => 'select',
-					'element_attributes' => array($choiceTab),
-				);
 				$courseformatoptionsedit['allmodulesbreadcrum'] = array(
 					'label' => "Afficher les activités cachées mais disponibles dans la barre de progression.",
 					'element_type' => 'select',
 					'element_attributes' => array($choiceTab),
 				);
-				$courseformatoptionsedit['autoattendance'] = array(
-					'label' => "Le bouton d'appel envoie automatiquement vers l'appel si une séance à lieu maintenant (sinon vers la liste des sessions d'appel).",
-					'element_type' => 'select',
-					'element_attributes' => array($choiceTab),
-				);
 				$courseformatoptionsedit['viewiconmessage'] = array(
 					'label' => get_string('hide_icon_message', 'format_iena'),
 					'element_type' => 'select',
diff --git a/param_section.php b/param_section.php
index e6025090f9ba73581c0f851709bbeb37812c5023..527a82e57d90ed210f9c8638763d42614c8f0141 100644
--- a/param_section.php
+++ b/param_section.php
@@ -53,31 +53,32 @@
 			$_POST["date_iena"]["hour"] . ":" . $_POST["date_iena"]["minute"] . ":00";
 		$dateUp = date_create($dateChaine);
 		$data_iena = new stdClass();
-		if ($_POST['date_render']) {
+		if (isset($_POST['date_render'])) {
 			$dateChaine = "";
 		}
 		$data_iena->date_rendu = $dateChaine;
 		$data_iena->presence = $_POST['presence'];
 		$data_iena->id_section = $sectionId;
-		if ($_POST['day_same']) {
+		if (isset($_POST['day_same'])) {
 			$data_iena->day_same = $_POST['day_same'];
 		} else {
 			$data_iena->day_same = 0;
 		}
 		
-		if ($_POST['day_before']) {
+		if (isset($_POST['day_before'])) {
 			$data_iena->day_before = $_POST['day_before'];
 		} else {
 			$data_iena->day_before = 0;
 		}
-		if ($_POST['day_after']) {
+		if (isset($_POST['day_after'])) {
 			$data_iena->day_after = $_POST['day_after'];
 		} else {
 			$data_iena->day_after = 0;
 		}
 		$data_iena->nb_days_before = $_POST['nb_days_before'];
 		$data_iena->nb_days_after = $_POST['nb_days_after'];
-		$data_iena->hide = $_POST['hide'];
+		// $data_iena->hide = $_POST['hide'];
+		$data_iena->hide = false;
 		
 		$testIfsection = $DB->get_record('format_iena', array('id_section' => $sectionId), '*');
 		if ($testIfsection == false) {
@@ -91,7 +92,7 @@
 		$data['name'] = $_POST['name'];
 		$data['summary'] = $_POST['summary']['text'];
 		$DB->update_record('course_sections', $data);
-		rebuild_course_cache($courseid, true);
+		rebuild_course_cache($COURSE->id, true);
 		$link = $CFG->wwwroot . '/course/view.php?id=' . $courseID;
 		header("Location: {$link}");
 		exit;
diff --git a/renderer.php b/renderer.php
index 5306fa309bff7eb325106d53c79855b624a6012a..f20219ad385b54f586ec16fd4f83fe7b1f102ef2 100644
--- a/renderer.php
+++ b/renderer.php
@@ -99,9 +99,9 @@
 			if ($PAGE->user_is_editing()) {
 				$o .= $this->output->heading($sectionname, 3, 'sectionname' . $classes);
 			}
-			if ($course->showdefaultsectionname) {
-				$o .= $this->output->heading($sectionname, 3, 'sectionname' . $classes);
-			}
+			// if ($course->showdefaultsectionname) {
+			// 	$o .= $this->output->heading($sectionname, 3, 'sectionname' . $classes);
+			// }
 			// if (!$iena) { $o .= $sectionname; }
 
 			$context = context_course::instance($course->id);
@@ -405,7 +405,10 @@
 
 			// nouvelle génération du header
 
+			$view = "";
+
 			require_once($CFG->dirroot . '/course/format/iena/entity/course_format_iena_completion.php');
+			// return false if completion disabled (site or course)
 			$cpl = course_format_iena_completion::get_completion_by_section($nameSection, $idSection);
 
 			/* Passer le calcul de complétion de la classe course_format_iena_completion à part à la vue qui fait le header permet de ne pas récupérer deux fois les mêmes informations. */
@@ -506,20 +509,25 @@ foreach ($htmlsection as $section) {
 		continue;
 	}
 	$param_section = $section_entity->get_section_settings_by_id_section($idSection[$i]);
-	if ($param_section->presence && $i != 0) {
-		if ($param_section->presence == 1) {
-			$presence = "En présence";
-		} else if ($param_section->presence == 2) {
-			$presence = "A distance";
+	// dates, modality and notification section parameters : false if not set. 
+	if ($param_section !== false) {
+		if ($param_section->presence && $i != 0) {
+			if ($param_section->presence == 1) {
+				$presence = "En présence";
+			} else if ($param_section->presence == 2) {
+				$presence = "A distance";
+			}
 		}
-	}
 
-	if ($param_section->date_rendu) {
-		$dateUp = date_create($param_section->date_rendu);
-		$date = $dateUp->format("j/m H:i");
-		$date_jour = $dateUp->format("j/m");
-		$date_heure = $dateUp->format("H:i");
-		$dateUp = $dateUp->getTimestamp();
+		if ($param_section->date_rendu) {
+			$dateUp = date_create($param_section->date_rendu);
+			$date = $dateUp->format("j/m H:i");
+			$date_jour = $dateUp->format("j/m");
+			$date_heure = $dateUp->format("H:i");
+			$dateUp = $dateUp->getTimestamp();
+		} else {
+			$date = "";
+		}
 	} else {
 		$date = "";
 	}
@@ -535,7 +543,7 @@ foreach ($htmlsection as $section) {
 	<div class=\"card card_block\">
 	<div class=\"heading-iena set_height\">";
 
-	if ( count($cpl->sections[$i]->modules) > 0 ) {
+	if ( $cpl != false && count($cpl->sections[$i]->modules) > 0 ) {
 		$view .= "<div class='iena-percent set_height'>" . $cpl->sections[$i]->completion . "%</div>";
 	}
 
@@ -744,7 +752,7 @@ public function print_iena_section_pages($course)
 		$sectionvisible = 1;
 	}
 	$htmlsection = false;
-	$nameSection = false;
+	$nameSection = [];
 	$idSection = false;
 	$introSection = false;
 			//var_dump($modinfo->get_section_info_all());die;
@@ -763,10 +771,10 @@ public function print_iena_section_pages($course)
 				$numsections = course_get_format($course)->get_last_section_number();
 
 				// var_dump($numsections);
-				if ($section > numsections) {
-				// if ($section > $course->numsections) {
-					// continue;
-				}
+				// if ($section > $numsections) {
+				// // if ($section > $course->numsections) {
+				// 	// continue;
+				// }
 				/* if is not editing verify the rules to display the sections */
 				if (!$PAGE->user_is_editing() && (!has_capability('moodle/course:viewhiddensections', $context = context_course::instance($course->id), $USER->id))) {
 					if ($course->hiddensections && !(int)$thissection->visible) {
@@ -785,13 +793,14 @@ public function print_iena_section_pages($course)
 				
 				//Affiche le nom de la section en mode propre sans lien
 				$idSection[$section] = $thissection->id;
-				$nameSection[$section] .= $this->section_title_without_link($thissection, $course);
+				// $nameSection[$section] .= $this->section_title_without_link($thissection, $course);
+				$nameSection[$section] = $this->section_title_without_link($thissection, $course);
 				if ($PAGE->user_is_editing()) {
 					$htmlsection[$section] .= $this->section_header($thissection, $course, false, 0);
 				}
 				//$htmlsection[$section] .= $this->section_title($thissection,$course);
 				//$introSection[$section] .= $this->section_header($thissection, $course, false, 0);
-				$introSection[$section] .= $this->section_header($thissection, $course, false, 0, true);
+				$introSection[$section] = $this->section_header($thissection, $course, false, 0, true);
 				if ($thissection->uservisible) {
 					/* Ne pas enlever sinon le activity chooser ne fonctionne pas en JS */
 					$htmlsection[$section] .= "<div class='content'>";
@@ -830,11 +839,11 @@ public function print_iena_section_pages($course)
 				echo $this->start_section_list();
 			}
 
-			if ($course->sectionposition == 0 and isset($htmlsection0)) {
-				if ($PAGE->user_is_editing()){
-					echo html_writer::tag('span', $htmlsection0, ['class' => 'above']);
-				}
-			}
+			// if ($course->sectionposition == 0 and isset($htmlsection0)) {
+			// 	if ($PAGE->user_is_editing()){
+			// 		echo html_writer::tag('span', $htmlsection0, ['class' => 'above']);
+			// 	}
+			// }
 			//echo $this->get_button_section($course, $sectionvisible);
 			//here all activities are displayed
 			//If we are in etition mode then we display the "BASE" page Otherwise our model
@@ -846,10 +855,10 @@ public function print_iena_section_pages($course)
 				}
 			}
 			//At this stage nothing is yet displayed except the icon: Your progress
-			if ($course->sectionposition == 1 and isset($htmlsection0)) {
-				if ($PAGE->user_is_editing())
-					echo html_writer::tag('span', $htmlsection0, ['class' => 'below']);
-			}
+			// if ($course->sectionposition == 1 and isset($htmlsection0)) {
+				// if ($PAGE->user_is_editing())
+				// 	echo html_writer::tag('span', $htmlsection0, ['class' => 'below']);
+			// }
 			
 			//Add the + and - at the end of the page to see which part of the code to really keep
 			if ($PAGE->user_is_editing() and has_capability('moodle/course:update', $context)) {
diff --git a/send_message_post.php b/send_message_post.php
index 7e63aa21dacc4f25a65238e65783140983713336..4d123af9aef07f4cb216a33773d2c947e8e7d2ff 100644
--- a/send_message_post.php
+++ b/send_message_post.php
@@ -59,23 +59,23 @@
 		$brutMessageContent = $course->fullname . " " . $_POST['summary']['text'];
 		$course_ctx = context_course::instance($courseID);
 		$students = get_enrolled_users($course_ctx);
-		$message = new \core\message\message();
-		$message->courseid = $course->id;
-		$message->component = 'moodle';
-		$message->name = 'instantmessage';
-		$message->userfrom = $USER;
-		$message->notification = '0';
-		$message->fullmessageformat = FORMAT_HTML;
+		
 		// sending a notification to each students
 		foreach ($usersid as $userID) {
 			foreach ($students as $student) {
-				//var_dump($student);
 				if ($student->id == $userID) {
-					$message->userto = $student;
+					$message = new \core\message\message();
+					$message->courseid = $course->id;
+					$message->component = 'moodle';
+					$message->name = 'instantmessage';
+					$message->userfrom = $USER;
+					$message->notification = '0';
+					$message->fullmessageformat = FORMAT_HTML;
 					$message->subject = "Rappel : " . $course->fullname;
 					$message->smallmessage = $messageContent;
 					$message->fullmessage = $brutMessageContent;
 					$message->fullmessagehtml = $messageContent;
+					$message->userto = $student;
 					$messageid = message_send($message);
 					break;
 				}
diff --git a/version.php b/version.php
index 5ad24e8d69b29ef2d0eb9a61c01ff01196c13735..26a27644f2083b3c883f0db6102ac55aa13d7981 100644
--- a/version.php
+++ b/version.php
@@ -28,7 +28,7 @@
 	
 	defined('MOODLE_INTERNAL') || die();
 	
-	$plugin->version = 2019010802;
+	$plugin->version = 2019062101;
 	$plugin->requires = 2014111000;
 	$plugin->component = 'format_iena';
 	$plugin->release = "1.0";
diff --git a/view/view_course_header.php b/view/view_course_header.php
index 043cd74c84f8c2379d3b6b14ae05354b462e21c8..cf214656811dd4e3371a301018b3ec2879bcf28a 100644
--- a/view/view_course_header.php
+++ b/view/view_course_header.php
@@ -4,13 +4,13 @@ class view_course_header {
 
 	private $_content = "";
 
-	public function __construct($section_names, $idSection, $course, $progress = null) {
+	public function __construct($section_names, $idSection, $course, $progress = false) {
 
 		global $CFG;
 
 		$this->section_names = $section_names;
 		$this->idSection = $idSection;
-		$this->completion_total = $completion_total;
+		// $this->completion_total = $completion_total;
 		$this->course = $course;
 		$this->create_view($progress);
 	}
@@ -19,7 +19,7 @@ class view_course_header {
 		
 		// $this->get_progress_bis($this->section_names, $this->idSection, $this->course);
 		
-		$prog = $progress != null ? $progress : $this->get_progress_bis($this->section_names, $this->idSection, $this->course);
+		$prog = $progress != false ? $progress : $this->get_progress_bis($this->section_names, $this->idSection, $this->course);
 
 		$infos = [
 			'progress' => $prog,
@@ -301,44 +301,9 @@ class view_course_header {
 		return $array;
 	}
 
-	private function get_attendance_link() {
-		global $COURSE, $CFG, $DB, $USER;
-		if ( ! $this->is_teacher($USER) ) { return false; }
-		// 23 is the id of an attendance mod
-		$param['module'] = 23;
-		$param['course'] = $COURSE->id;
-		$param['deletioninprogress'] = 0;
-		$att_module = $DB->get_record('course_modules', $param);
-		if ( ! $att_module->id ) { return false; }
-		$attendance = new course_format_iena_attendance();
-		$course_sessions = $attendance->get_attendance_sessions($COURSE->id);
-		$attendance_session = false;
-		$attendance_session_group = false;
-		foreach ( $course_sessions as $session ) {
-			$begin = $session->sessdate;
-			$end = $session->sessdate + $session->duration;
-			if ( time() > $begin && time() < $end ) {
-				$attendance_session = $session->id;
-				$attendance_session_group = $session->groupid;
-			}
-		}
-		$course_params = course_get_format($COURSE->id)->get_course();
-		$attendance_session_auto = $course_params->autoattendance == 1 ? true : false;
-		if ( $attendance_session ) {
-			if ( $attendance_session_auto ) {
-				$attendance_link = "$CFG->wwwroot/mod/attendance/take.php?id=$att_module->id&sessionid=$attendance_session&grouptype=$attendance_session_group";
-			} else {
-				$attendance_link = "$CFG->wwwroot/mod/attendance/manage.php?id=$att_module->id&group=0";
-			}
-		} else {
-			$attendance_link = "$CFG->wwwroot/mod/attendance/sessions.php?id=$att_module->id&action=1";
-		}
-		return $attendance_link;
-	}
-
 	private function set_html($infos) {
 		
-		global $CFG, $COURSE;
+		global $CFG, $COURSE, $USER;
 
 		// $css = file_get_contents( $CFG->wwwroot.'/course/format/iena/course-header.css' );
 		// $this->_content .= '<style>'.$css.'</style>';
@@ -466,19 +431,22 @@ class view_course_header {
 		}
 
 		// course summary
-		if ( ! empty($COURSE->summary) ) {
+		$summary_copy = $COURSE->summary;
+		$to_delete = array('<p>', '</p>', '<br>', '</br>', ' ');
+		$summary_copy = str_replace($to_delete, '', $summary_copy);
+		$summary_copy = preg_replace('/\s+/', '', $summary_copy);
+		if ( $summary_copy != "" ) {
 			$this->_content .= '<hr><h2>À propos du cours</h2><div class="iena-h-summary">' . $COURSE->summary . '</div>';
 		}
 
 		$this->_content .= '</div>'; // end of : bottom part
 
-
-		// toggle link (bottom part visibility) if progressbar or course summary exist
-		$course_params = course_get_format($COURSE->id)->get_course();
-		if ( ! empty($COURSE->summary) || $course_params->viewbreadcrum == 1 ) {
-			$this->_content .= '<div class="iena-course-header-toggler" id="iena-h-toggler"><hr><a href="#" onclick="iena_toggle_course_header(event)">Afficher / masquer les infos du cours</a></div><script>function iena_toggle_course_header(event) { event.preventDefault(); var bottom = document.getElementById("iena-h-bottom"); if(bottom.style.display == "none") { bottom.style.display = ""; bottom.setAttribute("aria-expanded", true); } else { bottom.style.display = "none"; bottom.setAttribute("aria-expanded", false); } }</script>';
+		if ( $summary_copy != "" ) {
+			$this->_content .= '<div class="iena-course-header-toggler" id="iena-h-toggler"><hr><a href="#" onclick="iena_toggle_course_header(event)">Afficher / masquer les infos du cours</a></div>';
 		}
 
+		$this->_content .= '<script>function iena_toggle_course_header(event) { event.preventDefault(); var bottom = document.getElementById("iena-h-bottom"); if(bottom.style.display == "none") { bottom.style.display = ""; bottom.setAttribute("aria-expanded", true); } else { bottom.style.display = "none"; bottom.setAttribute("aria-expanded", false); } }</script>';
+
 		$this->_content .= '</div>'; // end of : iena course header
 	}
 
diff --git a/view/view_param_section.php b/view/view_param_section.php
index bd188218c95f95fca67007c5d5d5bcf92393308b..5776189176ac5a8c5615cb62ac1481857263ffa8 100644
--- a/view/view_param_section.php
+++ b/view/view_param_section.php
@@ -51,7 +51,7 @@
 		public function get_content($course, $dataSection)
 		{
 			global $DB, $CFG, $PAGE;
-			
+
 			$mform = $this->_form;
 			$sectionId = required_param('sectionid', PARAM_INT);
 			$courseID = required_param('courseid', PARAM_INT);
@@ -82,187 +82,163 @@
 			$mform->setDefault('summary', array('text' => $description));
 			
 			$mform->addElement('date_time_selector', 'date_iena', 'Date');
-			$dateUp = date_create($dataSection->date_rendu);
+			if ($dataSection == false) {
+				$dateUp = date_create();
+			} else {
+				$dateUp = date_create($dataSection->date_rendu);
+			}
 			$mform->setDefault('date_iena', $dateUp->getTimestamp());
-			
 			$mform->addElement('checkbox', 'date_render', get_string('form_not_defined', 'format_iena'));
-			if (!$dataSection->date_rendu) {
-				$mform->setDefault('date_render', '1');
+			if ($dataSection == false) {
+				$mform->setDefault('date_render', true);
+			} else {
+				$mform->setDefault('date_render', false);
 			}
 			
+			
 			//Adding elements to the form not included in moodle
 			
 				// <script src=\"".$CFG->wwwroot."/course/format/iena/js/param_section.js\"></script>
 			$content = "
-				<h1>" . get_string('settings_section_form', 'format_iena') . " : " . $name . "</h1>
-				<form class=\"form-horizontal\" action=\"param_section.php?courseid=" . $courseID . "&sectionid=" . $sectionId . "\" method=\"post\">
-							<fieldset>
-							<div class=\"form-group\">";
-					$temp = $mform->toHtml();
+			<h1>" . get_string('settings_section_form', 'format_iena') . " : " . $name . "</h1>
+			<form class=\"form-horizontal\" action=\"param_section.php?courseid=" . $courseID . "&sectionid=" . $sectionId . "\" method=\"post\">
+			<fieldset>
+			<div class=\"form-group\">";
+			$temp = $mform->toHtml();
 					//Supprime le <form>
-					$temp = substr($temp, (strpos($temp, '>') + 1));
-					$temp = substr($temp, 0, -7);
-					
-					$content .= $temp;
-					
-					$content .= "
-		<div class=\"row\">
-		<!-- Multiple Radios -->
-		<br>
-		  <label class=\"col-md-3 control-label\" for=\"radios\">" . get_string('modalite', 'format_iena') . "</label>
-		  <div class=\"col-md-4\">
-		  <div class=\"radio\">
+			$temp = substr($temp, (strpos($temp, '>') + 1));
+			$temp = substr($temp, 0, -7);
+
+			$content .= $temp;
+
+			$content .= "
+			<div class=\"row\">
+			<!-- Multiple Radios -->
+			<br>
+			<label class=\"col-md-3 control-label\" for=\"radios\">" . get_string('modalite', 'format_iena') . "</label>
+			<div class=\"col-md-4\">
+			<div class=\"radio\">
 			<label for=\"radios-0\">
-			  <input type=\"radio\" name=\"presence\" id=\"presence-0\" value=\"1\" ";
-					if ($dataSection->presence == 1) $content .= "checked=\"checked\"";
-					$content .= ">
-			  " . get_string('in_presence', 'format_iena') . "
+			<input type=\"radio\" name=\"presence\" id=\"presence-0\" value=\"1\" ";
+			if ($dataSection != false && $dataSection->presence == 1) {
+				$content .= "checked=\"checked\"";
+			}
+			$content .= ">
+			" . get_string('in_presence', 'format_iena') . "
 			</label>
 			</div>
-		  <div class=\"radio\">
+			<div class=\"radio\">
 			<label for=\"radios-1\">
-			  <input type=\"radio\" name=\"presence\" id=\"presence-1\" value=\"2\" ";
-					if ($dataSection->presence == 2) $content .= "checked=\"checked\"";
-					$content .= ">
-			 " . get_string('not_presence', 'format_iena') . "
+			<input type=\"radio\" name=\"presence\" id=\"presence-1\" value=\"2\" ";
+			if ($dataSection != false && $dataSection->presence == 2) {
+				$content .= "checked=\"checked\"";
+			}
+			$content .= ">
+			" . get_string('not_presence', 'format_iena') . "
 			</label>
 			</div>
 			<div class=\"radio\">
 			<label for=\"radios-1\">
-			  <input type=\"radio\" name=\"presence\" id=\"presence-2\" value=\"0\" ";
-					if (!$dataSection->presence) $content .= "checked=\"checked\"";
-					$content .= ">
-			 " . get_string('form_not_defined', 'format_iena') . "
+			<input type=\"radio\" name=\"presence\" id=\"presence-2\" value=\"0\" ";
+			if ($dataSection == false || ($dataSection != false && $dataSection->presence == 0)) {
+				$content .= "checked=\"checked\"";
+			}
+			$content .= ">
+			" . get_string('form_not_defined', 'format_iena') . "
 			</label>
 			</div>
-		  </div>
-		</div>
-		
-		<!-- Multiple Checkboxes -->
-		<div class=\"\">
+			</div>
+			</div>
+
+			<!-- Multiple Checkboxes -->
+			<div class=\"\">
 			<div class=\"form-group row\">
-				<div class=\"col-md-3\">
-					<label class=\"control-label\" for=\"checkboxes\">" . get_string('notif', 'format_iena') . "</label>
-					<p style=\"font-size: 12px;\">" . get_string('notif_summary', 'format_iena') . "</p>
-				</div>
-				<div class=\"col-md-6\" style=\"padding-top: 30px;\">
-					<div class=\"checkbox\">
-						<label for=\"day_before\">
-							<input type=\"checkbox\" name=\"day_before\" id=\"day_before\" value=\"1\" ";
-							if ($dataSection->day_before == 1) $content .= "checked=\"checked\"";
-							$content .= ">" . get_string('days_before', 'format_iena') . " : 
-							<select class=\"form-control\" style=\"width: 55px; display: inline;\" id=\"nb_days_before\" name =\"nb_days_before\">
-								<option ";
-							if ($dataSection->nb_days_before == 1) $content .= "selected=\"selected\"";
-							$content .= " >1</option>
-								<option ";
-							if ($dataSection->nb_days_before == 2) $content .= "selected=\"selected\"";
-							$content .= " >2</option>
-								<option ";
-							if ($dataSection->nb_days_before == 3) $content .= "selected=\"selected\"";
-							$content .= " >3</option>
-								<option ";
-							if ($dataSection->nb_days_before == 4) $content .= "selected=\"selected\"";
-							$content .= " >4</option>
-								<option ";
-							if ($dataSection->nb_days_before == 5) $content .= "selected=\"selected\"";
-							$content .= " >5</option>
-							</select> " . get_string('nb_days_before', 'format_iena') . "
-						</label>
-					</div>
-			  		<div class=\"checkbox\">
-						<label for=\"day_same\">
-				  			<input type=\"checkbox\" name=\"day_same\" id=\"day_same\" value=\"1\" ";
-						if ($dataSection->day_same == 1) $content .= "checked=\"checked\"";
-						$content .= ">" . get_string('days_same', 'format_iena') . "
-						</label>
-					</div>
-					<div class=\"checkbox\">
-						<label for=\"checkboxes-2\">
-				  			<input type=\"checkbox\" name=\"day_after\" id=\"day_after\" value=\"1\" ";
-						if ($dataSection->day_after == 1) $content .= "checked=\"checked\"";
-						$content .= ">" . get_string('days_after', 'format_iena') . " : 
-							<select class=\"form-control\" style=\"width: 55px; display: inline;\" id=\"nb_days_after\" name =\"nb_days_after\">
-							  <option ";
-									if ($dataSection->nb_days_after == 1) $content .= "selected=\"selected\"";
-									$content .= " >1</option>
-							  <option ";
-									if ($dataSection->nb_days_after == 2) $content .= "selected=\"selected\"";
-									$content .= " >2</option>
-							  <option ";
-									if ($dataSection->nb_days_after == 3) $content .= "selected=\"selected\"";
-									$content .= " >3</option>
-							  <option ";
-									if ($dataSection->nb_days_after == 4) $content .= "selected=\"selected\"";
-									$content .= " >4</option>
-							  <option ";
-									if ($dataSection->nb_days_after == 5) $content .= "selected=\"selected\"";
-									$content .= " >5</option>
-							</select> " . get_string('nb_days_after', 'format_iena') . "
-						</label>
-					</div>
-				</div>
-		 
+			<div class=\"col-md-3\">
+			<label class=\"control-label\" for=\"checkboxes\">" . get_string('notif', 'format_iena') . "</label>
+			<p style=\"font-size: 12px;\">" . get_string('notif_summary', 'format_iena') . "</p>
 			</div>
-		</div>
-		
-		<!-- Multiple Radios -->
-		<div class=\"row\" style=\"display: none;\">
-		<div class=\"form-group\">
-		<div class=\"col-md-3\">
-		  <label class=\" control-label\" for=\"radios\">" . get_string('hide_section', 'format_iena') . "</label>
-		  <p style=\"font-size: 12px;\">" . get_string('hide_section_summary', 'format_iena') . "</p>
-		  </div>
-		  <div class=\"col-md-4\">
-		  <div class=\"radio\">
-			<label for=\"radios-0\">
-			  <input type=\"radio\" name=\"hide\" id=\"hide-0\" value=\"1\" ";
-					if ($dataSection->hide == 1 || !$dataSection->hide) $content .= "checked=\"checked\"";
-					$content .= ">
-			 " . get_string('hide_option_1', 'format_iena') . "
+			<div class=\"col-md-6\" style=\"padding-top: 30px;\">
+			<div class=\"checkbox\">
+			<label for=\"day_before\">
+			<input type=\"checkbox\" name=\"day_before\" id=\"day_before\" value=\"1\" ";
+			if ($dataSection != false && $dataSection->day_before == 1) $content .= "checked=\"checked\"";
+			$content .= ">" . get_string('days_before', 'format_iena') . " : 
+			<select class=\"form-control\" style=\"width: 55px; display: inline;\" id=\"nb_days_before\" name =\"nb_days_before\">
+			<option ";
+			if ( ($dataSection != false && $dataSection->nb_days_before == 1) || $dataSection == false ) $content .= "selected=\"selected\"";
+			$content .= " >1</option>
+			<option ";
+			if ($dataSection != false && $dataSection->nb_days_before == 2) $content .= "selected=\"selected\"";
+			$content .= " >2</option>
+			<option ";
+			if ($dataSection != false && $dataSection->nb_days_before == 3) $content .= "selected=\"selected\"";
+			$content .= " >3</option>
+			<option ";
+			if ($dataSection != false && $dataSection->nb_days_before == 4) $content .= "selected=\"selected\"";
+			$content .= " >4</option>
+			<option ";
+			if ($dataSection != false && $dataSection->nb_days_before == 5) $content .= "selected=\"selected\"";
+			$content .= " >5</option>
+			</select> " . get_string('nb_days_before', 'format_iena') . "
 			</label>
 			</div>
-		  <div class=\"radio\">
-			<label for=\"radios-1\">
-			  <input type=\"radio\" name=\"hide\" id=\"hide-1\" value=\"2\" ";
-					if ($dataSection->hide == 2) $content .= "checked=\"checked\"";
-					$content .= ">
-			  " . get_string('hide_option_2', 'format_iena') . "
+			<div class=\"checkbox\">
+			<label for=\"day_same\">
+			<input type=\"checkbox\" name=\"day_same\" id=\"day_same\" value=\"1\" ";
+			if ($dataSection != false && $dataSection->day_same == 1) $content .= "checked=\"checked\"";
+			$content .= ">" . get_string('days_same', 'format_iena') . "
 			</label>
 			</div>
-			<div class=\"radio\">
-			<label for=\"radios-2\">
-			  <input type=\"radio\" name=\"hide\" id=\"hide-2\" value=\"3\" ";
-					if ($dataSection->hide == 3) $content .= "checked=\"checked\"";
-					$content .= ">
-			  " . get_string('hide_option_3', 'format_iena') . "
+			<div class=\"checkbox\">
+			<label for=\"checkboxes-2\">
+			<input type=\"checkbox\" name=\"day_after\" id=\"day_after\" value=\"1\" ";
+			if ($dataSection != false && $dataSection->day_after == 1) $content .= "checked=\"checked\"";
+			$content .= ">" . get_string('days_after', 'format_iena') . " : 
+			<select class=\"form-control\" style=\"width: 55px; display: inline;\" id=\"nb_days_after\" name =\"nb_days_after\">
+			<option ";
+			if ( ($dataSection != false && $dataSection->nb_days_after == 1) || $dataSection == false ) $content .= "selected=\"selected\"";
+			$content .= " >1</option>
+			<option ";
+			if ($dataSection != false && $dataSection->nb_days_after == 2) $content .= "selected=\"selected\"";
+			$content .= " >2</option>
+			<option ";
+			if ($dataSection != false && $dataSection->nb_days_after == 3) $content .= "selected=\"selected\"";
+			$content .= " >3</option>
+			<option ";
+			if ($dataSection != false && $dataSection->nb_days_after == 4) $content .= "selected=\"selected\"";
+			$content .= " >4</option>
+			<option ";
+			if ($dataSection != false && $dataSection->nb_days_after == 5) $content .= "selected=\"selected\"";
+			$content .= " >5</option>
+			</select> " . get_string('nb_days_after', 'format_iena') . "
 			</label>
 			</div>
-		  </div>
-		</div>
-		</div>
-		";
-		$link_annuler = $CFG->wwwroot . "/course/view.php?id=" . $courseID;
-		$content .= '<div class="">
+			</div>
 
-							<button type="submit" class="btn btn-primary">' . get_string('save', 'format_iena') . '</button>
+			</div>
+			</div>
+			";
+			$link_annuler = $CFG->wwwroot . "/course/view.php?id=" . $courseID;
+			$content .= '<div class="">
 
+			<button type="submit" class="btn btn-primary">' . get_string('save', 'format_iena') . '</button>
 
-						<a href=\' ' . $link_annuler . ' \' class=\'btn btn-secondary\'>' . get_string('cancel', 'format_iena') . '</a>
-					
-					</div>
-					</fieldset>
-					';
-		$content .= "</form>
-		<script type=\"text/javascript\" charset=\"utf8\" src=\"https://code.jquery.com/jquery-3.3.1.min.js\"></script>
-		<script>
-		$(document).ready(function () {
-			$('.fdescription').hide();
-		});
-		</script>
-";
-			
-			return $content;
-		}
-		
-	}
\ No newline at end of file
+
+			<a href=\' ' . $link_annuler . ' \' class=\'btn btn-secondary\'>' . get_string('cancel', 'format_iena') . '</a>
+
+			</div>
+			</fieldset>
+			';
+			$content .= "</form>
+			<script type=\"text/javascript\" charset=\"utf8\" src=\"https://code.jquery.com/jquery-3.3.1.min.js\"></script>
+			<script>
+			$(document).ready(function () {
+				$('.fdescription').hide();
+				});
+				</script>
+				";
+
+				return $content;
+			}
+
+		}
\ No newline at end of file
diff --git a/view/view_send_message.php b/view/view_send_message.php
index 4945c9c1ffa6694f6552b15b78b411e8220c3a96..5aff912030b7748922a9a2ef1800a70186abad84 100644
--- a/view/view_send_message.php
+++ b/view/view_send_message.php
@@ -53,7 +53,7 @@
 
 				$content = "<h2>Envoi d'un message à ". $nb ." personnes</h2>
 				<p>Envoi d'un message à tous les étudiants précédemment sélectionnés. Les informations suivantes seront automatiquement ajoutées au message&nbsp;: nom du cours, lien vers le cours, nom du l'enseignant émetteur du message (vous). </p>
-				<p>L'étudiant recevra le message dans le chat et sera notifié par mail s'il n'est pas connecté au moment où le message est envoyé.</p>";
+				<p>L'étudiant recevra le message dans le chat et pourra être notifié par mail s'il n'est pas connecté au moment où le message est envoyé.</p>";
 
 				$mform = $this->_form;
 				$description = "";
diff --git a/view/view_suivi_unit3.php b/view/view_suivi_unit3.php
index 8529dbb8c573222edecd080050a083cf6cd8962c..225212c84eb21da9962ef44a35d8a0855986a0d1 100644
--- a/view/view_suivi_unit3.php
+++ b/view/view_suivi_unit3.php
@@ -30,9 +30,6 @@ require_once($CFG->libdir . '/completionlib.php');
 $completion = new completion_info($course);
 $context = context_course::instance($COURSE->id);
 
-/* Groupes du cours avec id, nom et liste des id utilisateur de tous les membres (3 clefs d'un tableau de groupes : id, name, member) */
-$groups = groups_get_all_groups($COURSE->id, 0, 0, 'g.*', false);
-
 /* Groupe du GET provenant du sélecteur de la page du cours, ou premier groupe de l'utilisateur, ou groupe 0 (tous les groupes). */
 $active_group_id = $_GET['groupid'];
 // @TODO à supprimer si pas utilisé dans le JS (mettre dans la clause IF pour éviter un appel inutile si le GET existe)
@@ -46,6 +43,13 @@ if ($active_group_id == NULL || ($active_group_id == 0 && !has_capability('cours
 	}
 }
 
+/* Groupes du cours avec id, nom et liste des id utilisateur de tous les membres (3 clefs d'un tableau de groupes : id, name, member) */
+if ( $active_group_id == 0 ) {
+	$groups = groups_get_all_groups($COURSE->id, 0, 0, 'g.*', true);
+} else {
+	$groups = groups_get_all_groups($COURSE->id, 0, 0, 'g.*', false);
+}
+
 $current_user_groups = [];
 $active_group_name = "";
 foreach ($groups as $group) {
@@ -64,15 +68,28 @@ foreach ($groups as $group) {
 - informations personnelles (tous les utilisateurs du cours)
 - liste des activités avec état d'achèvement (si achevées, sinon vide) */
 $progress = $completion->get_progress_all(
-	implode(' AND ', $where),
-	$where_params,
+	'',
+	array(),
 	$active_group_id,
-	$firstnamesort ? 'u.firstname ASC, u.lastname ASC' : 'u.lastname ASC, u.firstname ASC',
-	$csv ? 0 : COMPLETION_REPORT_PAGE,
-	$csv ? 0 : $start,
+	'u.lastname ASC, u.firstname ASC',
+	'',
+	'',
 	$context
 );
 
+/* Ajoute les groupes de l'utilisateur pour l'afficher dans l'export */
+/* Si le user a le droit d'afficher pour tous les groupes ou qu'il n'y en a pas, on récupère le groupe de l'utilisateur pour qu'il puisse être téléchargé dans le tableau blobal intergroupe. */
+if ( $active_group_id == 0 ) {
+	foreach ($progress as $prog) {
+		$prog->groups = "";
+		foreach ($groups as $group) {
+			if ( in_array($prog->id, $group->members) ) {
+				$prog->groups .= $group->name . " ";
+			}
+		}
+	}
+}
+
 /* Liste de toutes les activités du cours (sauf en attente de suppression). La liste est épurée et constitue un tableau d'objet. */
 $activities = $completion->get_activities();
 $modules = [];
@@ -111,17 +128,17 @@ if ($active_section_id == NULL) {
 // }
 
 // Filtre actif si il existe (si la page est rechargée pour un filtre de groupe p.ex.)
-$filter = $_GET['filter'];
-if ($filter == NULL) {
-	// no param given for section : first section (index 1, not generalities section 0)
-	$filter = '<100';
+if (isset($_GET['filter'])) {
+	$filter = $_GET['filter'];
+} else {
+	$filter = 'all';
 }
 
 // echo "<pre>";
 // var_dump($progress);
 // var_dump($sections);
 // var_dump($modules);
-// var_dump($groups);
+// print_r($groups);
 // var_dump($results);
 // var_dump($current_user_groups_ids);
 // var_dump($current_user_groups);
@@ -130,91 +147,91 @@ if ($filter == NULL) {
 ?>
 
 <style>
-/* Permet la rotation des entêtes du tableau */
-th.th-rotate {
-	/* Something you can count on */
-	height: 140px;
-	white-space: nowrap;
-}
+	/* Permet la rotation des entêtes du tableau */
+	th.th-rotate {
+		/* Something you can count on */
+		height: 140px;
+		white-space: nowrap;
+	}
 
-th.th-rotate > div {
-	transform: 
-	/* Magic Numbers */
-	translate(17px, 49px)
-	/* 45 is really 360 - 45 */
-	rotate(315deg);
-	width: 30px;
-}
-th.th-rotate > div > span {
-	border-bottom: 1px solid #ccc;
-	padding: 5px 10px;
-}
-/* Change la couleur une ligne sur deux dans le tableau */
-#table-body tr:nth-child(even) { background: #fafafa; }
-#table-body tr:nth-child(odd) { background: #eee; }
-/* Colorie la cellule en fonction de l'achèvement */
-.state-0 { background-color: rgba(0, 143, 132, 0.23); }
-.state-1 { background-color: #009085; }
-.state-2 { background-color: #009085; }
-.state-3 { background-color: rgba(214, 141, 1, 0.4); }
-
-
-#first-column-head {
-	vertical-align: bottom;
-	padding-bottom: 0.5rem;
-}
+	th.th-rotate > div {
+		transform: 
+		/* Magic Numbers */
+		translate(17px, 49px)
+		/* 45 is really 360 - 45 */
+		rotate(315deg);
+		width: 30px;
+	}
+	th.th-rotate > div > span {
+		border-bottom: 1px solid #ccc;
+		padding: 5px 10px;
+	}
+	/* Change la couleur une ligne sur deux dans le tableau */
+	#table-body tr:nth-child(even) { background: #fafafa; }
+	#table-body tr:nth-child(odd) { background: #eee; }
+	/* Colorie la cellule en fonction de l'achèvement */
+	.state-0 { background-color: rgba(0, 143, 132, 0.23); }
+	.state-1 { background-color: #009085; }
+	.state-2 { background-color: #009085; }
+	.state-3 { background-color: rgba(214, 141, 1, 0.4); }
+
+
+	#first-column-head {
+		vertical-align: bottom;
+		padding-bottom: 0.5rem;
+	}
 
-.pointer-help {
-	cursor: help;
-}
+	.pointer-help {
+		cursor: help;
+	}
 
-.stud_perc {
-	min-width: 45px;
-	display: inline-block;
-}
+	.stud_perc {
+		min-width: 45px;
+		display: inline-block;
+	}
 
-#table-body td { border-right: 1px solid #eee; }
+	#table-body td { border-right: 1px solid #eee; }
 
-/* Scroll de la table */
-#table-body {
-	display: block; 
-	overflow-y:scroll; 
-	margin-right: 10rem;
-	height: 300px;
-	height: 50vh; 
-}
+	/* Scroll de la table */
+	#table-body {
+		display: block; 
+		overflow-y:scroll; 
+		margin-right: 10rem;
+		height: 300px;
+		height: 50vh; 
+	}
 
-#suivi {
-	margin-bottom: 1rem;
-}
+	#suivi {
+		margin-bottom: 1rem;
+	}
 
-#suivi thead {
-	display: block; overflow-x:scroll;
-}
+	#suivi thead {
+		display: block; overflow-x:scroll;
+	}
 
-#suivi thead tr th:nth-child(1) {
-	width:20em;
-	min-width:20em;
-}
-#suivi thead tr th {
-	min-width:32px;
-}
-#suivi tbody tr th {
-	width:20em;
-	min-width:20em;
-	word-break: break-word;
-}
-#suivi tbody tr td {
-	min-width:32px;
-}
+	#suivi thead tr th:nth-child(1) {
+		width:20em;
+		min-width:20em;
+	}
+	#suivi thead tr th {
+		min-width:32px;
+	}
+	#suivi tbody tr th {
+		width:20em;
+		min-width:20em;
+		word-break: break-word;
+	}
+	#suivi tbody tr td {
+		min-width:32px;
+	}
 
-#suivi input[type="checkbox"] {
-	margin: 5px;
-	font-size: 1rem;
-}
+	#suivi input[type="checkbox"] {
+		margin: 5px;
+		font-size: 1rem;
+	}
 
-.mb1 { margin-bottom: 1rem; }
-.mt1 { margin-top: 1rem; }
+	.mb1 { margin-bottom: 1rem; }
+	.mt1 { margin-top: 1rem; }
 
 </style>
 
@@ -306,6 +323,7 @@ th.th-rotate > div > span {
 				">25" => "&gt;=25%",
 				">0" => "&gt;0%",
 			];
+			var_dump($filter);
 			foreach ($filters as $value => $name) {
 				if ( $value == $filter ) {
 					echo "<option selected='selected' value='$value'>$name</option>";
@@ -356,7 +374,9 @@ th.th-rotate > div > span {
 	<a href="#" class="select_all_studs">Sélectionner tout</a> || <a href="#" class="send_msg_sel">Message aux étudiants sélectionnés</a>
 </div>
 
-<div id="no_result" class="alert alert-warning">Aucun étudiants trouvé. Vérifiez la section, le groupe et le filtre choisi.</div>
+<div id="no_result" class="alert alert-warning" style="display: none;">Aucun étudiants trouvé. Vérifiez la section, le groupe et le filtre choisi.</div>
+
+<div id="no_result_activity" class="alert alert-warning" style="display: none;">Aucune activité se semble suivie pour cette section. </div>
 
 <table id="suivi">
 	<thead>
@@ -376,7 +396,7 @@ th.th-rotate > div > span {
 
 <div class="table-dl">
 	<a href="#">Télécharger ce tableau</a>
-	<p>Télécharge le tableau pour la section et le groupe sélectionné en haut de page. Les autres filtres ne sont pas pris en compte pour cet export. Sélectionnez "Tout" en haut de page pour chaque filtre si vous souhaitez le tableau complet.</p>
+	<p>Télécharge le tableau pour la section et le groupe sélectionné en haut de page. Les autres filtres ne sont pas pris en compte pour cet export. Sélectionnez "Tout" en haut de page pour chaque filtre si vous souhaitez le tableau complet. Dans le tableau téléchargé : 0 = non achevé ; 1 = achevé ; 0,5 = essayé mais échoué ; 2 = réussi. </p>
 </div>
 
 <script type="text/javascript">
@@ -405,14 +425,37 @@ var data = {
 				counter++;
 			}
 		}
-		console.log(counter);
+		var no_rows = false;
 		if (counter == 0) {
+			no_rows = true;
+		}
+
+		var cols = document.querySelectorAll("#suivi > thead > tr > th.th-rotate");
+		var counter = 0;
+		for (var i = 0; i < cols.length; i++) {
+			if (cols[i].style.display != "none") {
+				counter++;
+			}
+		}
+		var no_cols = false;
+		if (counter == 0) {
+			no_cols = true;
+		}
+
+		if (no_cols) {
+			document.getElementById('no_result_activity').style.display = "";
+			document.getElementById('no_result').style.display = "none";
 			document.getElementById('suivi').style.display = "none";
+		} else if (no_rows) {
+			document.getElementById('no_result_activity').style.display = "none";
 			document.getElementById('no_result').style.display = "";
+			document.getElementById('suivi').style.display = "none";
 		} else {
-			document.getElementById('suivi').style.display = "";
+			document.getElementById('no_result_activity').style.display = "none";
 			document.getElementById('no_result').style.display = "none";
+			document.getElementById('suivi').style.display = "";
 		}
+
 	}
 
 	function set_table_head() {
@@ -635,7 +678,11 @@ var data = {
 					done++;
 				}
 			}
-			var stud_perc = 100 * done / modules_nbr;
+			if (modules_nbr > 0) {
+				var stud_perc = 100 * done / modules_nbr;
+			} else {
+				var stud_perc = 0;
+			}
 			rows[i].querySelector('span').innerHTML = Math.floor(stud_perc) + "% ";
 			rows[i].dataset.percent = stud_perc;
 		}
@@ -728,15 +775,24 @@ var data = {
 				activities_nbr++;
 			}
 
-			console.log(done_activities_nbr)
-			console.log(activities_nbr)
+			// console.log(done_activities_nbr)
+			// console.log(activities_nbr)
 			
 			var perc = Math.round(100 * 100 * done_activities_nbr / activities_nbr) / 100;
+
+			// console.log(data.progress[s]);
+			var groups = '"';
+			if ( data.active_group_name != "" ) {
+				groups += data.active_group_name.replace('"', '');
+			} else {
+				groups += data.progress[s].groups.replace('"', '');
+			}
+			groups += '"';
 			var arr = [
 			data.progress[s].id,
 			data.progress[s].firstname,
 			data.progress[s].lastname,
-			'"' + data.active_group_name.replace('"', '') + '"',
+			groups,
 			'"'+perc.toLocaleString()+'"',
 			arr_cpl
 			];