From 28e4098ae7b4ecb7473e5c73d24af6a23182de18 Mon Sep 17 00:00:00 2001
From: Myriam Delaruelle <myriam.delaruelle@univ-lorraine.fr>
Date: Wed, 30 Mar 2022 14:19:45 +0200
Subject: [PATCH] =?UTF-8?q?fix=20syst=C3=A8me=20de=20notification?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 lib.php | 46 +++++++++++++++++++++++++++++-----------------
 1 file changed, 29 insertions(+), 17 deletions(-)

diff --git a/lib.php b/lib.php
index 3d9cc1e..f85f33a 100644
--- a/lib.php
+++ b/lib.php
@@ -175,7 +175,7 @@
 			$mform->hideIf('groupdate2', 'presence', 'eq', 2);
 
 
-
+			//On cache cet élément si on n'est pas à distance
 			$daysarray=array();
 			$days=array(0=>0, 1=>1, 2=>2, 3=>3, 4=>4, 5=>5);
 			$daysarray[]=$mform->createElement('html', '<div class="form-group fitem">');
@@ -210,20 +210,27 @@
           	if($section_config['daterendu']){
 
           		if(isset($section_config['presence']) && $section_config['presence']==2){
-          			error_log("on passe là");
           			$mform->setDefault('daterendu', $section_config['daterendu']);
           			$mform->setDefault('daterenducheck', "1");
           		}
           		else if(isset($section_config['presence'])){
-          			error_log("non on passe là");
           			$mform->setDefault('daterendu2', $section_config['daterendu']);
           			$mform->setDefault('daterenducheck2', "1");
           		}
           		
           	}
           	if(isset($section_config['daysnotif']) && $section_config['daysnotif'] > -1){
-          		$mform->setDefault('selectdays', $section_config['daysnotif']);
-          		$mform->setDefault('selectdayscheck', "1");
+          		//Si on est à distance : il faut activer daysnotif et selectdayscheck
+          		if(isset($section_config['presence']) && $section_config['presence']==2){
+          			$mform->setDefault('daysnotif', $section_config['daysnotif']);
+          			$mform->setDefault('selectdayscheck', "1");
+          		}
+          		//si on est en présence, il faut activer daysnotif2 et selectdayscheck2
+          		else if(isset($section_config['presence']) && $section_config['presence']==1){
+          			$mform->setDefault('daysnotif2', $section_config['daysnotif']);
+          			$mform->setDefault('selectdayscheck2', "1");
+          		}
+          		
           	}
 
         }
@@ -263,20 +270,25 @@
         }
         else if(isset($data['daterenducheck2'])){
         	$data['daterendu']=$data['daterendu2'];
-
         }
-        if(!isset($data['selectdayscheck'])){
-        	if(isset($data['daysnotif2'])){
-    			$data['daysnotif']=$data["daysnotif2"];
-    		}
-        	if(array_key_exists('daysnotif', $section_config) && $section_config['daysnotif']>-1){
-        		$data['daysnotif']=-1;
 
-        	}
-        	else{
-        		unset($data['daysnotif']);
-        	}
-        }
+	    /* De base daysnotifs est vide et daysnotifs2 n'existe pas */
+		// Le système de notification n'a jamais été activé et on veut l'activer
+		// Si c'est en présence
+
+		if(isset($data['daysnotif2'])){	
+			$data['daysnotif']=$data["daysnotif2"];
+		}
+		//Le système de notif a déjà été activé  et on veut le désactiver OU il a jamais été activé et on ne veut pas l'activer.
+		if(empty($data['daysnotif']) || (!isset($data['selectdayscheck']) && !isset($data['selectdayscheck2']))){
+			if(array_key_exists('daysnotif', $section_config) && $section_config['daysnotif']>-1){
+	        	$data['daysnotif']=-1;
+	    	}
+	    	else{
+	    		unset($data['daysnotif']);
+	    	}
+		}
+
         return $this->update_format_options($data, $data['id']);
     }
 
-- 
GitLab