Commit 63f8e704df0b37093770eca6b1bf8e3e7f46a2a5

Authored by Etienne Pallier
1 parent fe2c64d9
Exists in master and in 1 other branch dev

Grosse amélioration et rationalisation (généralisation) notifications

(VERSION FINALE)

Aussi :
- Bugfix action /materiels/mailDevis
- Divers bugfixes

v4.103.8-3.7.9
@@ -110,6 +110,12 @@ TODO : @@ -110,6 +110,12 @@ TODO :
110 (sur le modèle de /pages/acls) 110 (sur le modèle de /pages/acls)
111 111
112 ------- 112 -------
  113 +25/09/2020 v4.103.8-3.7.9 (EP)
  114 + - (i) Grosse amélioration et rationalisation (généralisation) de la gestion des notifications : log et/ou email (VERSION FINALE)
  115 + - (b) Bugfix action /materiels/mailDevis
  116 + - (b) Divers bugfixes
  117 +
  118 +-------
113 25/09/2020 v4.103.7-3.7.9 (EP) 119 25/09/2020 v4.103.7-3.7.9 (EP)
114 - (i) Grosse amélioration et rationalisation de la gestion des notifications : log et/ou email (étape 6) 120 - (i) Grosse amélioration et rationalisation de la gestion des notifications : log et/ou email (étape 6)
115 - (i) Les noms et verbes associés aux actions (pour les notifs) sont désormais aussi configurables, et par labo 121 - (i) Les noms et verbes associés aux actions (pour les notifs) sont désormais aussi configurables, et par labo
@@ -43,7 +43,7 @@ Logiciel testé et validé sur les configurations suivantes : @@ -43,7 +43,7 @@ Logiciel testé et validé sur les configurations suivantes :
43 -------------------------------------------------------------------------------------------- 43 --------------------------------------------------------------------------------------------
44 44
45 Date: 25/09/2020 45 Date: 25/09/2020
46 -Version: 4.103.7-3.7.9 46 +Version: 4.103.8-3.7.9
47 47
48 48
49 HISTORIQUE DES CHANGEMENTS DE VERSION : voir le fichier CHANGES.txt (ou la page web /pages/changes) 49 HISTORIQUE DES CHANGEMENTS DE VERSION : voir le fichier CHANGES.txt (ou la page web /pages/changes)
src/Controller/AppController.php
@@ -2282,7 +2282,7 @@ class AppController extends Controller @@ -2282,7 +2282,7 @@ class AppController extends Controller
2282 if ( ! isset($_SESSION['Auth']['User']) ) return true; 2282 if ( ! isset($_SESSION['Auth']['User']) ) return true;
2283 2283
2284 // pb avec QrCode : pas de $this->e, donc on évite 2284 // pb avec QrCode : pas de $this->e, donc on évite
2285 - if ($this instanceof QrCodesController) return true; 2285 + ////if ($this instanceof QrCodesController) return true;
2286 if ( 2286 if (
2287 // Pour toutes les actions autres que 'add' ou 'edit' 2287 // Pour toutes les actions autres que 'add' ou 'edit'
2288 ! in_array($this->a,['add','edit']) 2288 ! in_array($this->a,['add','edit'])
@@ -2307,11 +2307,18 @@ class AppController extends Controller @@ -2307,11 +2307,18 @@ class AppController extends Controller
2307 ////$this->getEntity($this->e_id); 2307 ////$this->getEntity($this->e_id);
2308 //if (!$this->e->getErrors()) 2308 //if (!$this->e->getErrors())
2309 //debug($this->getCurrentEntity()); exit; 2309 //debug($this->getCurrentEntity()); exit;
2310 - if (!$this->getCurrentEntity() || !$this->getCurrentEntity()->getErrors()) 2310 + if (
  2311 + // Cas de Users avec l'action /users/login par exemple (ou Materiel avec l'action QrCode...)
  2312 + !$this->getCurrentEntity()
  2313 + ||
  2314 + // Toutes les autres actions
  2315 + !$this->getCurrentEntity()->getErrors()
  2316 + ) {
2311 $emails = $this->sendNotificationForEntityAction(); 2317 $emails = $this->sendNotificationForEntityAction();
  2318 + //debug($emails);
  2319 + }
2312 } 2320 }
2313 } 2321 }
2314 - //debug($emails);  
2315 //exit; 2322 //exit;
2316 2323
2317 } // afterFilter() 2324 } // afterFilter()
@@ -2620,7 +2627,7 @@ class AppController extends Controller @@ -2620,7 +2627,7 @@ class AppController extends Controller
2620 function ilog($msg=null) { 2627 function ilog($msg=null) {
2621 2628
2622 // true => n'envoie pas de log 2629 // true => n'envoie pas de log
2623 - $DEBUG = true; 2630 + $DEBUG = false;
2624 2631
2625 //$controller = $this->request->getParam('controller'); 2632 //$controller = $this->request->getParam('controller');
2626 //$action = $this->getActionPassed(); 2633 //$action = $this->getActionPassed();
@@ -2894,7 +2901,13 @@ class AppController extends Controller @@ -2894,7 +2901,13 @@ class AppController extends Controller
2894 // Fonction d'envoi de mails 2901 // Fonction d'envoi de mails
2895 private function sendEmailTo($subject, $msg, $mail, $config) 2902 private function sendEmailTo($subject, $msg, $mail, $config)
2896 { 2903 {
2897 - if ($mail != null && ! $config->test) { 2904 + /*
  2905 + debug($subject);
  2906 + debug($msg);
  2907 + debug($mail);
  2908 + exit;
  2909 + */
  2910 + if ($mail != null && !$config->test) {
2898 if (filter_var($mail, FILTER_VALIDATE_EMAIL)) { 2911 if (filter_var($mail, FILTER_VALIDATE_EMAIL)) {
2899 //debug("icii"); 2912 //debug("icii");
2900 $email = new Email(); 2913 $email = new Email();
@@ -3006,13 +3019,14 @@ class AppController extends Controller @@ -3006,13 +3019,14 @@ class AppController extends Controller
3006 // PHP5 : 3019 // PHP5 :
3007 // @obsolete 3020 // @obsolete
3008 public function sendmail($entity, $mode=3, $subject = null, $msg = null) { 3021 public function sendmail($entity, $mode=3, $subject = null, $msg = null) {
3009 - $this->sendNotificationForEntityAction($mode,$subject,$msg); 3022 + //$this->sendNotificationForEntityAction($mode,$subject,$msg);
  3023 + $this->sendNotificationForEntityAction($mode, $entity);
3010 } 3024 }
3011 - public function sendNotificationForEntityAction($mode=3, $subject = null, $msg = null) { 3025 + public function sendNotificationForEntityAction($mode=3, $given_entity=null, $subject = null, $msg = null) {
3012 //return null; 3026 //return null;
3013 3027
3014 // true => n'envoie pas de notif 3028 // true => n'envoie pas de notif
3015 - $DEBUG = true; 3029 + $DEBUG = false;
3016 3030
3017 $control = $this->getName(); 3031 $control = $this->getName();
3018 //debug($control); exit; 3032 //debug($control); exit;
@@ -3023,6 +3037,10 @@ class AppController extends Controller @@ -3023,6 +3037,10 @@ class AppController extends Controller
3023 $entity = $this->getCurrentEntity(); 3037 $entity = $this->getCurrentEntity();
3024 ////if ( !$entity ) return null; 3038 ////if ( !$entity ) return null;
3025 3039
  3040 + // Par exemple, pour les actions documents/mail-devis ou users/login ...
  3041 + if (!$entity && $this->e_id) $entity = $this->getEntity($this->e_id);
  3042 + //debug($entity); exit;
  3043 +
3026 $entities_name = strtolower($control); // materiels, documents, suivis, emprunts... 3044 $entities_name = strtolower($control); // materiels, documents, suivis, emprunts...
3027 $entity_name_field = $this->getNameFieldLabel(); 3045 $entity_name_field = $this->getNameFieldLabel();
3028 if ($entity) 3046 if ($entity)
@@ -3106,29 +3124,32 @@ class AppController extends Controller @@ -3106,29 +3124,32 @@ class AppController extends Controller
3106 $IS_ENTITY_MATERIEL = $entity instanceof Materiel; 3124 $IS_ENTITY_MATERIEL = $entity instanceof Materiel;
3107 $IS_ENTITY_LINKED_TO_MATERIEL = false; 3125 $IS_ENTITY_LINKED_TO_MATERIEL = false;
3108 $entity_types_linked_to_materiel = ['Suivi', 'Emprunt', 'Document']; 3126 $entity_types_linked_to_materiel = ['Suivi', 'Emprunt', 'Document'];
3109 - foreach ($entity_types_linked_to_materiel as $Entity_type_linked) 3127 + foreach ($entity_types_linked_to_materiel as $Entity_type_linked) {
3110 // Si c'est une entité liée et qu'elle a bien un Materiel associé 3128 // Si c'est une entité liée et qu'elle a bien un Materiel associé
3111 // (par exemple pour Document, ce n'est pas forcément le cas car il peut être associé à un Suivi et non un Materiel) 3129 // (par exemple pour Document, ce n'est pas forcément le cas car il peut être associé à un Suivi et non un Materiel)
3112 //if ( ($entity instanceof $Entity_type_linked) && $entity->materiel_id ) { 3130 //if ( ($entity instanceof $Entity_type_linked) && $entity->materiel_id ) {
3113 //if ( is_a($entity, "App\\Model\\Entity\\".$Entity_type_linked) && $entity->materiel_id ) { 3131 //if ( is_a($entity, "App\\Model\\Entity\\".$Entity_type_linked) && $entity->materiel_id ) {
3114 if ( is_a($entity, "App\\Model\\Entity\\".$Entity_type_linked) ) { 3132 if ( is_a($entity, "App\\Model\\Entity\\".$Entity_type_linked) ) {
3115 - if (! $entity->materiel_id)  
3116 - throw new \Exception("L'entité $entity devrait être liée à un matériel via son champ FK materiel_id, or ce champ est null !");  
3117 - $IS_ENTITY_LINKED_TO_MATERIEL = true;  
3118 - break; 3133 + // On vérifie que cette entité est bien liée à un matériel
  3134 + // car ce n'est pas toujours le cas.
  3135 + // Par exemple, un Document peut être lié à un Suivi (au lieu d'un Materiel)
  3136 + if ($entity->materiel_id) {
  3137 + $IS_ENTITY_LINKED_TO_MATERIEL = true;
  3138 + break;
  3139 + }
  3140 + //else throw new \Exception("L'entité $entity devrait être liée à un matériel via son champ FK materiel_id, or ce champ est null !");
3119 } 3141 }
  3142 + }
3120 $IS_ENTITY_OTHER = !$IS_ENTITY_MATERIEL && !$IS_ENTITY_LINKED_TO_MATERIEL; 3143 $IS_ENTITY_OTHER = !$IS_ENTITY_MATERIEL && !$IS_ENTITY_LINKED_TO_MATERIEL;
3121 // On définit quelques infos sur le matériel s'il est disponible 3144 // On définit quelques infos sur le matériel s'il est disponible
3122 $materiel = null; 3145 $materiel = null;
3123 $contain = ['SurCategories', 'Categories', 'SousCategories']; 3146 $contain = ['SurCategories', 'Categories', 'SousCategories'];
3124 - if ($IS_ENTITY_MATERIEL) { 3147 + if ($IS_ENTITY_MATERIEL)
3125 $materiel = $this->getEntity($entity->id, false, $contain); 3148 $materiel = $this->getEntity($entity->id, false, $contain);
3126 - }  
3127 - else { 3149 + elseif ($IS_ENTITY_LINKED_TO_MATERIEL)
3128 $materiel = $this->getCurrentEntityRelatedMateriel($entity->materiel_id, $contain); 3150 $materiel = $this->getCurrentEntityRelatedMateriel($entity->materiel_id, $contain);
3129 - }  
3130 -  
3131 3151
  3152 +
3132 /* 3153 /*
3133 * 3) LOG 3154 * 3) LOG
3134 */ 3155 */
@@ -3138,26 +3159,36 @@ class AppController extends Controller @@ -3138,26 +3159,36 @@ class AppController extends Controller
3138 // ex: "Document modifié = 'doc-toto' (id=112)" 3159 // ex: "Document modifié = 'doc-toto' (id=112)"
3139 // ex: "Utilisateur connecté = 'Pierre Durand' (id=112)" 3160 // ex: "Utilisateur connecté = 'Pierre Durand' (id=112)"
3140 // ex: "Utilisateur déconnecté = 'Pierre Durand' (id=112)" 3161 // ex: "Utilisateur déconnecté = 'Pierre Durand' (id=112)"
3141 -  
3142 if ($this->isNotifierActionSendingLog($action)) { 3162 if ($this->isNotifierActionSendingLog($action)) {
3143 //$msglog = "$entity_type {$action_attrs['past_verb']} = '$entity' (id=$id)"; 3163 //$msglog = "$entity_type {$action_attrs['past_verb']} = '$entity' (id=$id)";
3144 //$msglog = "$entity_type {$action_attrs['past_verb']} = '$entity_name' (id=$id)"; 3164 //$msglog = "$entity_type {$action_attrs['past_verb']} = '$entity_name' (id=$id)";
3145 - $msglog = "$entity_type {$action_attrs['past_verb']}"; 3165 + $msglog = ucfirst($entity_type).' '.$action_attrs['past_verb'];
3146 if ($entity) $msglog .= " = '$entity_name' (id=$id)"; 3166 if ($entity) $msglog .= " = '$entity_name' (id=$id)";
  3167 + // Cas particulier d'un Document : on affiche son type
  3168 + if ($entity instanceof Document) $msglog .= " (type={$entity->type_doc})";
3147 // Si c'est une entité liée à un matériel, on ajoute des infos sur le matériel : " - matériel lié 'tititoto' (url)" 3169 // Si c'est une entité liée à un matériel, on ajoute des infos sur le matériel : " - matériel lié 'tititoto' (url)"
3148 if ($IS_ENTITY_LINKED_TO_MATERIEL) { 3170 if ($IS_ENTITY_LINKED_TO_MATERIEL) {
3149 //$msglog .= " - matériel lié '{$materiel->designation}' ($host/materiels/view/{$materiel->id})"; 3171 //$msglog .= " - matériel lié '{$materiel->designation}' ($host/materiels/view/{$materiel->id})";
3150 - $msglog .= " - matériel lié '{$materiel->designation}' (id={$materiel->id})"; 3172 + $msglog .= " - lié au Materiel '{$materiel->designation}' (id={$materiel->id})";
  3173 + }
  3174 + // CAS TRES PARTICULIER d'un Document lié à un Suivi (et non pas à un Materiel)
  3175 + if ($IS_ENTITY_OTHER && $entity instanceof Document && $entity->suivi_id) {
  3176 + //$msglog .= " - suivi lié '{$entity->Suivi->nom}' (id={$entity->suivi_id})";
  3177 + $msglog .= " - lié au Suivi (id={$entity->suivi_id})";
3151 } 3178 }
3152 //debug($msglog); 3179 //debug($msglog);
3153 //(!$DEBUG) && 3180 //(!$DEBUG) &&
3154 //$this->isNotifierActionSendingLog($action) && $this->ilog("$entity_name $action_verb = '$entity' (id=$id)"); 3181 //$this->isNotifierActionSendingLog($action) && $this->ilog("$entity_name $action_verb = '$entity' (id=$id)");
3155 - $this->isNotifierActionSendingLog($action) && $this->ilog($msglog); 3182 + $this->ilog($msglog);
3156 } 3183 }
3157 3184
3158 3185
3159 // Si notification email pas demandée, on quitte 3186 // Si notification email pas demandée, on quitte
3160 - ////if (! $this->isNotifierActionSendingEmail($action)) return null; 3187 + if (!$DEBUG) if (! $this->isNotifierActionSendingEmail($action) ) return null;
  3188 + // Si les deux cases "Activer l'envoi des mails.." sont décochées, on se fatigue pas à exécuter la fonction
  3189 + $configuration = $this->confLabinvent;
  3190 + if (!$configuration->envoi_mail && !$configuration->envoi_mail_guests) return null;
  3191 +
3161 3192
3162 /* 3193 /*
3163 * 4) CRÉATION DU MAIL (sujet et body) 3194 * 4) CRÉATION DU MAIL (sujet et body)
@@ -3166,12 +3197,10 @@ class AppController extends Controller @@ -3166,12 +3197,10 @@ class AppController extends Controller
3166 * 3197 *
3167 */ 3198 */
3168 3199
3169 - // MESSAGE GÉNÉRIQUE  
3170 -  
3171 // Sujet : 3200 // Sujet :
3172 3201
3173 $subject = $subject ? $subject : "{$action_attrs['noun']} $article_dun$entity_type"; 3202 $subject = $subject ? $subject : "{$action_attrs['noun']} $article_dun$entity_type";
3174 - debug($subject); 3203 + $DEBUG && debug($subject);
3175 3204
3176 // Message (body) : 3205 // Message (body) :
3177 3206
@@ -3181,6 +3210,8 @@ class AppController extends Controller @@ -3181,6 +3210,8 @@ class AppController extends Controller
3181 $msg_mail .= "$user a ".$action_attrs['past_verb']; 3210 $msg_mail .= "$user a ".$action_attrs['past_verb'];
3182 if ($entity) { 3211 if ($entity) {
3183 $msg_mail .= " $article_le$entity_type '$entity_name'"; 3212 $msg_mail .= " $article_le$entity_type '$entity_name'";
  3213 + // Cas particulier d'un Document : on affiche son type
  3214 + if ($entity instanceof Document) $msg_mail .= " (type={$entity->type_doc})";
3184 // (EP) Ajout de l'url (ou id) du materiel 3215 // (EP) Ajout de l'url (ou id) du materiel
3185 //$msg_mail .= $action=='delete' ? " (id=$id)" : " ($host/materiels/view/$id)"; 3216 //$msg_mail .= $action=='delete' ? " (id=$id)" : " ($host/materiels/view/$id)";
3186 $msg_mail .= $action=='delete' ? " (id=$id)" : " ($host/$entities_name/view/$id)"; 3217 $msg_mail .= $action=='delete' ? " (id=$id)" : " ($host/$entities_name/view/$id)";
@@ -3203,6 +3234,11 @@ class AppController extends Controller @@ -3203,6 +3234,11 @@ class AppController extends Controller
3203 } 3234 }
3204 */ 3235 */
3205 //if ($entity instanceof Materiel || $ENTITY_TYPE_LINKED) { 3236 //if ($entity instanceof Materiel || $ENTITY_TYPE_LINKED) {
  3237 + // CAS TRES PARTICULIER d'un Document lié à un Suivi (et non pas à un Materiel)
  3238 + if ($IS_ENTITY_OTHER && $entity instanceof Document && $entity->suivi_id) {
  3239 + //$msglog .= " - suivi lié '{$entity->Suivi->nom}' (id={$entity->suivi_id})";
  3240 + $msg_mail .= " - lié au Suivi (id={$entity->suivi_id})";
  3241 + }
3206 if ($IS_ENTITY_MATERIEL || $IS_ENTITY_LINKED_TO_MATERIEL) { 3242 if ($IS_ENTITY_MATERIEL || $IS_ENTITY_LINKED_TO_MATERIEL) {
3207 $msg_detail = "\n\nAttributs du matériel "; 3243 $msg_detail = "\n\nAttributs du matériel ";
3208 //$materiel = ($entity instanceof Materiel) ? $entity : $this->getMateriel($entity->materiel_id); 3244 //$materiel = ($entity instanceof Materiel) ? $entity : $this->getMateriel($entity->materiel_id);
@@ -3258,19 +3294,23 @@ class AppController extends Controller @@ -3258,19 +3294,23 @@ class AppController extends Controller
3258 } // Entité Materiel ou associée 3294 } // Entité Materiel ou associée
3259 3295
3260 // - (3) Matos only (sauf delete, dévalidé, TBA et archive) : Veuillez vérifier... 3296 // - (3) Matos only (sauf delete, dévalidé, TBA et archive) : Veuillez vérifier...
3261 - $actions_no_need_to_be_checked = ['delete', 'statusCreated', 'statusTobearchived', 'statusArchived'];  
3262 - if ( $entity instanceof Materiel && !in_array($action,$actions_no_need_to_be_checked) )  
3263 - $msg_mail .= "\n\nVeuillez vérifier et compléter si besoin la fiche correspondante."; 3297 + $actions_no_need_to_be_checked = ['view', 'index', 'delete', 'statusCreated', 'statusTobearchived', 'statusArchived'];
  3298 + if ( $IS_ENTITY_MATERIEL && !in_array($action,$actions_no_need_to_be_checked) )
  3299 + $msg_mail .= "\n\nVeuillez vérifier et compléter si besoin la fiche correspondante.";
3264 3300
3265 // - (4) TOUS : Vous recevez ce message car... (raison) 3301 // - (4) TOUS : Vous recevez ce message car... (raison)
3266 if ($entity) { 3302 if ($entity) {
3267 $msg_mail .= "\n\nVous recevez ce message car"; 3303 $msg_mail .= "\n\nVous recevez ce message car";
3268 $raison = " vous êtes concerné(e) par cette action effectuée sur l'inventaire des matériels du laboratoire"; 3304 $raison = " vous êtes concerné(e) par cette action effectuée sur l'inventaire des matériels du laboratoire";
3269 - $raison .= "\n\n(vous êtes l'utilisateur du matériel, ou bien le gestionnaire, ou encore le responsable thématique, métier ou projet)";  
3270 - $raison .= "\n\n(ou alors, vous êtes dans la liste mail spécifique gérée via la page de configuration du logiciel LabInvent)."; 3305 + if ($action == 'mailDevis')
  3306 + $raison .= "\n\n(vous êtes le gestionnaire de référence du matériel)";
  3307 + else
  3308 + $raison .= "\n\n(vous êtes l'utilisateur du matériel, ou bien le gestionnaire, ou encore le responsable thématique, métier ou projet)";
  3309 + if ($action != 'mailDevis')
  3310 + $raison .= "\n\n(ou alors, vous êtes dans la liste mail spécifique gérée via la page de configuration du logiciel LabInvent).";
3271 $msg_mail .= $raison; 3311 $msg_mail .= $raison;
3272 } 3312 }
3273 - debug($msg_mail); 3313 + $DEBUG && debug($msg_mail);
3274 3314
3275 // Par défaut 3315 // Par défaut
3276 /* 3316 /*
@@ -3278,11 +3318,12 @@ class AppController extends Controller @@ -3278,11 +3318,12 @@ class AppController extends Controller
3278 $msg = "$acteur a effectué l'action \"$action\" sur le matériel \"$nom_materiel\""; 3318 $msg = "$acteur a effectué l'action \"$action\" sur le matériel \"$nom_materiel\"";
3279 */ 3319 */
3280 3320
3281 - exit; 3321 + // PLUS BESOIN DE TOUT CE BLABLA TROP SPÉCIFIQUE
3282 3322
3283 /* 3323 /*
  3324 + /S
3284 * - mail pour un MATERIEL 3325 * - mail pour un MATERIEL
3285 - */ 3326 + S/
3286 3327
3287 // if ($entity != null) { 3328 // if ($entity != null) {
3288 if ($entity instanceof Materiel) { 3329 if ($entity instanceof Materiel) {
@@ -3351,7 +3392,7 @@ class AppController extends Controller @@ -3351,7 +3392,7 @@ class AppController extends Controller
3351 $msgMore .= "\n\n$attrs[1] : " . $val; 3392 $msgMore .= "\n\n$attrs[1] : " . $val;
3352 } 3393 }
3353 if ($msgMore) $msg .= $msgMore; 3394 if ($msgMore) $msg .= $msgMore;
3354 - /* 3395 + /S
3355 //if ($materiel->sur_categorie_id != "") 3396 //if ($materiel->sur_categorie_id != "")
3356 if ($materiel->sur_categorie_id) { 3397 if ($materiel->sur_categorie_id) {
3357 $val = $materiel->has('sur_category') ? $materiel->sur_category->nom : $materiel->sur_categorie_id; 3398 $val = $materiel->has('sur_category') ? $materiel->sur_category->nom : $materiel->sur_categorie_id;
@@ -3364,7 +3405,7 @@ class AppController extends Controller @@ -3364,7 +3405,7 @@ class AppController extends Controller
3364 //if ($materiel->description != "") 3405 //if ($materiel->description != "")
3365 if ($materiel->description) 3406 if ($materiel->description)
3366 $msgMore .= "\n\nDescription :\n" . $materiel->description; 3407 $msgMore .= "\n\nDescription :\n" . $materiel->description;
3367 - */ 3408 + S/
3368 3409
3369 // Dans la liste des mails, on ajoute l'utilisateur (responsable) du matériel 3410 // Dans la liste des mails, on ajoute l'utilisateur (responsable) du matériel
3370 //$mailList[0] = $materiel->email_responsable; 3411 //$mailList[0] = $materiel->email_responsable;
@@ -3385,9 +3426,9 @@ class AppController extends Controller @@ -3385,9 +3426,9 @@ class AppController extends Controller
3385 $entity instanceof Document 3426 $entity instanceof Document
3386 ) { 3427 ) {
3387 3428
3388 - /* 3429 + /S
3389 * - mail pour un DOCUMENT LIÉ 3430 * - mail pour un DOCUMENT LIÉ
3390 - */ 3431 + S/
3391 // @todo: ajouter quelques infos dans ces cas : 3432 // @todo: ajouter quelques infos dans ces cas :
3392 if ($entity instanceof Document) { 3433 if ($entity instanceof Document) {
3393 3434
@@ -3438,7 +3479,7 @@ class AppController extends Controller @@ -3438,7 +3479,7 @@ class AppController extends Controller
3438 } 3479 }
3439 $msg .= "\n\n (id doc = {$doc->id}, id du $entity_name associé = $id)"; 3480 $msg .= "\n\n (id doc = {$doc->id}, id du $entity_name associé = $id)";
3440 $nomFic =$id."_".$nom_doc."_".$id_doc.".".$type_doc; 3481 $nomFic =$id."_".$nom_doc."_".$id_doc.".".$type_doc;
3441 - /* 3482 + /S
3442 //if (!$id_mat == Null) { 3483 //if (!$id_mat == Null) {
3443 if ($id_mat) { 3484 if ($id_mat) {
3444 $msg .= "\n\n (id doc=".$doc->id.", Materiel associé d'id=\"$id_mat\")"; 3485 $msg .= "\n\n (id doc=".$doc->id.", Materiel associé d'id=\"$id_mat\")";
@@ -3447,7 +3488,7 @@ class AppController extends Controller @@ -3447,7 +3488,7 @@ class AppController extends Controller
3447 $msg .= "\n\n (id doc=".$doc->id.", Suivi associé d'id=\"$id_suiv\")"; 3488 $msg .= "\n\n (id doc=".$doc->id.", Suivi associé d'id=\"$id_suiv\")";
3448 $nomFic =$id_suiv."_".$nom_doc."_".$id_doc.".".$type_doc; 3489 $nomFic =$id_suiv."_".$nom_doc."_".$id_doc.".".$type_doc;
3449 } 3490 }
3450 - */ 3491 + S/
3451 } // sujet null 3492 } // sujet null
3452 3493
3453 // Si le doc est attaché à un matériel, on recupère ce matériel 3494 // Si le doc est attaché à un matériel, on recupère ce matériel
@@ -3465,45 +3506,41 @@ class AppController extends Controller @@ -3465,45 +3506,41 @@ class AppController extends Controller
3465 3506
3466 } // Entités (Entity) liées à un Materiel 3507 } // Entités (Entity) liées à un Materiel
3467 3508
3468 - /* 3509 + /S
3469 * @todo: 3510 * @todo:
3470 * else if ($entity instanceof Configuration) { 3511 * else if ($entity instanceof Configuration) {
3471 * ; 3512 * ;
3472 * } 3513 * }
3473 * ... etc ... (il faut qu'on soit plus précis) 3514 * ... etc ... (il faut qu'on soit plus précis)
3474 - */ 3515 + S/
3475 3516
3476 - 3517 + */
3477 3518
3478 /* 3519 /*
3479 * 4) DESTINATAIRES du mail : on construit la liste des destinataires 3520 * 4) DESTINATAIRES du mail : on construit la liste des destinataires
3480 */ 3521 */
3481 3522
3482 - // Si l'action n'est pas autorisée à envoyer un mai => on quitte  
3483 - if (! $this->isNotifierActionSendingEmail($action) ) return null;  
3484 -  
3485 - // Si les deux cases "Activer l'envoi des mails.." sont décochées, on se fatigue pas à exécuter la fonction  
3486 - $configuration = $this->confLabinvent;  
3487 - if (!$configuration->envoi_mail && !$configuration->envoi_mail_guests) return null;  
3488 -  
3489 // Pas de matériel défini => pas de mail (pas de bras, pas de chocolat) ! 3523 // Pas de matériel défini => pas de mail (pas de bras, pas de chocolat) !
3490 - if ($materiel == null) return null; 3524 + ////if ($materiel == null) return null;
3491 3525
3492 $mailList = []; 3526 $mailList = [];
3493 3527
3494 /* 3528 /*
3495 - * 4a) Envoi général 3529 + * 4a) Envoi général (uniquement pour les entités liées à un matériel)
3496 * 3530 *
3497 * Si l'envoi général est activé, on ajoute les mails des personnes concernées : 3531 * Si l'envoi général est activé, on ajoute les mails des personnes concernées :
3498 - * - le proprio (l'utilisateur) du matériel (sauf s'il est l'acteur de l'action)  
3499 - * - le gestionnaire de référence du matos  
3500 - * - les responsables thématiques et métier 3532 + * - (1) le proprio (l'utilisateur) du matériel (sauf s'il est l'acteur de l'action)
  3533 + * - (2) le gestionnaire de référence du matos
  3534 + * - (3) les responsables thématiques et métier
3501 * - (TODO:) les responsables (scientifique et chef projet) du projet 3535 * - (TODO:) les responsables (scientifique et chef projet) du projet
3502 */ 3536 */
  3537 +
  3538 + if (!$IS_ENTITY_OTHER) {
  3539 +
3503 //if ($configuration->envoi_mail && $action != 'printLabelRuban') { 3540 //if ($configuration->envoi_mail && $action != 'printLabelRuban') {
3504 if ($configuration->envoi_mail) { 3541 if ($configuration->envoi_mail) {
3505 3542
3506 - // - Ajout de l'utilisateur du matériel (sauf s'il est l'acteur de l'action) 3543 + // - (1) Ajout de l'utilisateur du matériel (sauf s'il est l'acteur de l'action)
3507 /* 3544 /*
3508 debug($acteur); 3545 debug($acteur);
3509 debug($this->userName); 3546 debug($this->userName);
@@ -3515,7 +3552,11 @@ class AppController extends Controller @@ -3515,7 +3552,11 @@ class AppController extends Controller
3515 //if ($this->userName == $materiel->nom_responsable) 3552 //if ($this->userName == $materiel->nom_responsable)
3516 $mailList[] = $materiel->email_responsable; 3553 $mailList[] = $materiel->email_responsable;
3517 3554
3518 - // - Ajout du gestionnaire de référence du matos (s'il y en a un) 3555 + // - (2) Ajout du Gestionnaire de référence du matos (s'il y en a un)
  3556 + if ($materiel->gestionnaire_id) {
  3557 + $gestionnaire_ref_email = TableRegistry::getTableLocator()->get('Users')->get($materiel->gestionnaire_id)->email;
  3558 + $mailList[] = $gestionnaire_ref_email;
  3559 + }
3519 /* 3560 /*
3520 if ($materiel->gestionnaire_id) 3561 if ($materiel->gestionnaire_id)
3521 $mailList[] = TableRegistry::getTableLocator()->get('Users') 3562 $mailList[] = TableRegistry::getTableLocator()->get('Users')
@@ -3527,11 +3568,9 @@ class AppController extends Controller @@ -3527,11 +3568,9 @@ class AppController extends Controller
3527 ->select('email') 3568 ->select('email')
3528 //->toArray(); 3569 //->toArray();
3529 */ 3570 */
3530 - if ($materiel->gestionnaire_id)  
3531 - $mailList[] = TableRegistry::getTableLocator()->get('Users')->get($materiel->gestionnaire_id)->email;  
3532 //debug($mailList); exit; 3571 //debug($mailList); exit;
3533 3572
3534 - // - Ajout des Responsables de groupe thématique ou métier 3573 + // - (3) Ajout des Responsables de groupe thématique ou métier
3535 /* 3574 /*
3536 $mailsRespMetier = []; 3575 $mailsRespMetier = [];
3537 $mailRespThematique = []; 3576 $mailRespThematique = [];
@@ -3609,6 +3648,9 @@ class AppController extends Controller @@ -3609,6 +3648,9 @@ class AppController extends Controller
3609 */ 3648 */
3610 } // si envoi général activé 3649 } // si envoi général activé
3611 3650
  3651 + } // uniquement pour entité liée à un matériel
  3652 +
  3653 +
3612 /* 3654 /*
3613 * 4b) Envoi à la liste spécifique 3655 * 4b) Envoi à la liste spécifique
3614 * 3656 *
@@ -3667,7 +3709,7 @@ class AppController extends Controller @@ -3667,7 +3709,7 @@ class AppController extends Controller
3667 break; 3709 break;
3668 } 3710 }
3669 */ 3711 */
3670 - $DEBUG && debug($mailList); 3712 + //$DEBUG && debug($mailList);
3671 //$DEBUG && exit; 3713 //$DEBUG && exit;
3672 3714
3673 /* 3715 /*
@@ -3709,13 +3751,17 @@ class AppController extends Controller @@ -3709,13 +3751,17 @@ class AppController extends Controller
3709 //$mailList = array_unique($mailList); 3751 //$mailList = array_unique($mailList);
3710 3752
3711 // ... Pour envoyer les mails aux personnes concernees 3753 // ... Pour envoyer les mails aux personnes concernees
  3754 + // Si action 'mailDevis', on envoie un mail SEULEMENT au gestionnaire de référence du matériel
  3755 + if ($action == 'mailDevis') $mailList = [$gestionnaire_ref_email];
3712 //$mailList = ['epallier@irap.omp.eu']; 3756 //$mailList = ['epallier@irap.omp.eu'];
3713 - $mailList = ['etiennoury@gmail.com'];  
3714 - foreach ($mailList as $mail) { 3757 + //$mailList = ['etienne.pallier@irap.omp.eu'];
  3758 + //$mailList = ['etiennoury@gmail.com'];
  3759 + foreach ($mailList as $email_addr) {
3715 // On envoi des mails à toute la liste, sauf pour "l'acteur", il sait ce qu'il a fait, pas besoin de le spam non plus hein 3760 // On envoi des mails à toute la liste, sauf pour "l'acteur", il sait ce qu'il a fait, pas besoin de le spam non plus hein
3716 //if ($mail == $_SESSION['Auth']['User']['mail'][0]) 3761 //if ($mail == $_SESSION['Auth']['User']['mail'][0])
3717 //continue; 3762 //continue;
3718 - $message = $msg; // Sisi, cette variable $message est utile, m'enfin vous pouvez toujours essayer de la supprimer ..... Et pensez à regarder le contenu de vos mails !!! Sinon ca fait une tumeur 3763 + //$message = $msg; // Sisi, cette variable $message est utile, m'enfin vous pouvez toujours essayer de la supprimer ..... Et pensez à regarder le contenu de vos mails !!! Sinon ca fait une tumeur
  3764 + $message = $msg_mail;
3719 // Génération du message "Vous recevez ce message en tant que $role" 3765 // Génération du message "Vous recevez ce message en tant que $role"
3720 // Si $role inexistant (lorsque c'est un mail de la liste entrée en configuration), le message est plutot "Vous recevez ce message car vous avez demandé à le recevoir. [...]" 3766 // Si $role inexistant (lorsque c'est un mail de la liste entrée en configuration), le message est plutot "Vous recevez ce message car vous avez demandé à le recevoir. [...]"
3721 //if ($specificUsers) 3767 //if ($specificUsers)
@@ -3723,8 +3769,10 @@ class AppController extends Controller @@ -3723,8 +3769,10 @@ class AppController extends Controller
3723 $role = "car vous etes dans la liste spécifique des emails de LabInvent."; 3769 $role = "car vous etes dans la liste spécifique des emails de LabInvent.";
3724 $role .= "\n\nPour faire retirer votre mail de cette liste, veuillez contacter un super-administrateur."; 3770 $role .= "\n\nPour faire retirer votre mail de cette liste, veuillez contacter un super-administrateur.";
3725 */ 3771 */
  3772 + /*
3726 $role = "car vous êtes concerné(e) par cette action effectuée sur l'inventaire des matériels du laboratoire"; 3773 $role = "car vous êtes concerné(e) par cette action effectuée sur l'inventaire des matériels du laboratoire";
3727 $role .= "\n\n(vous êtes l'utilisateur du matériel, ou bien le gestionnaire, ou encore le responsable thématique, métier ou projet)."; 3774 $role .= "\n\n(vous êtes l'utilisateur du matériel, ou bien le gestionnaire, ou encore le responsable thématique, métier ou projet).";
  3775 + */
3728 /* (EP 13/319) : à quoi sert toute cette suite du texte du mail ??? 3776 /* (EP 13/319) : à quoi sert toute cette suite du texte du mail ???
3729 * Ca sent le bon vieux copier-coller sans réfléchir... 3777 * Ca sent le bon vieux copier-coller sans réfléchir...
3730 //else { 3778 //else {
@@ -3741,41 +3789,44 @@ class AppController extends Controller @@ -3741,41 +3789,44 @@ class AppController extends Controller
3741 //} 3789 //}
3742 */ 3790 */
3743 //if ($entity != null && !in_array($action, ['delete','statusValidated','statusCreated'])) { 3791 //if ($entity != null && !in_array($action, ['delete','statusValidated','statusCreated'])) {
3744 - if ($entity != null) {  
3745 - //if (!in_array($action, ['delete']))  
3746 - if ( ($entity instanceof Materiel) && $action != 'delete')  
3747 - $message .= "\n\nVeuillez vérifier et compléter si besoin la fiche correspondante.";  
3748 - $message .= "\n\nVous recevez ce message " . $role;  
3749 - //en fonction du mode à l'appel, on utilise un envoi de mail différent  
3750 -  
3751 - $DEBUG && debug($message);  
3752 - //debug($message); exit;  
3753 - //debug($mode);  
3754 -  
3755 - if (! $DEBUG) switch($mode) {  
3756 -  
3757 - //si le mode 1 est sélectionné c'est un envoi de mail avec ajout d'une photo  
3758 - //explique le document qui a été ajouté, et le met en pièce jointe  
3759 - case 1 :  
3760 - $this->sendEmailImgTo("$subject", $message, $mail, $configuration, $nomFic);  
3761 - break;  
3762 -  
3763 - //si le mode 2 est sélectionné c'est un envoi de mail avec ajout d'un document  
3764 - //à personnaliser  
3765 - case 2 :  
3766 - $this->sendEmailPJTo("$subject", $message, $mail, $configuration, $nomFic);  
3767 - break;  
3768 -  
3769 - //si le mode defaut est sélectionné c'est un simple envoi de mail  
3770 - //récapitule une action (mieux pour les add...)  
3771 - default :  
3772 - $this->sendEmailTo("$subject", $message, $mail, $configuration);  
3773 - break; 3792 + ////if ($entity != null) {
  3793 + //if (!in_array($action, ['delete']))
  3794 + /*
  3795 + if ( ($entity instanceof Materiel) && $action != 'delete')
  3796 + $message .= "\n\nVeuillez vérifier et compléter si besoin la fiche correspondante.";
  3797 + $message .= "\n\nVous recevez ce message " . $role;
  3798 + */
  3799 +
  3800 + // Si action 'mailDevis', on ajoute le nom du fichier attaché
  3801 + if ($action == 'mailDevis') {
  3802 + // On change le contenu en fonction de si le document a été lié à un matériel ou à un suivi
  3803 + $id_mat = $entity->materiel_id;
  3804 + $id_suiv = $entity->suivi_id;
  3805 + $id = $id_mat ? $id_mat : $id_suiv;
  3806 + //$msg .= "\n\n (id doc = {$doc->id}, id du $entity_name associé = $id)";
  3807 + $nomFic = $id."_".$entity->nom."_".$entity->id.".".$entity->type_doc;
  3808 + //$subject = "$acteur a partagé un document avec vous";
  3809 + //$msg = "$acteur après avoir ajouté le document \"$nom_doc\", a voulu le partager avec vous, c'est un document ayant le format \"$type_doc\" .";
  3810 + //$msg .="\n\n Le document est en pièce jointe.";
  3811 + //si le mode 1 est sélectionné c'est un envoi de mail avec ajout d'une photo (explique le document qui a été ajouté, et le met en pièce jointe)
  3812 + //si le mode 2 est sélectionné c'est un envoi de mail avec ajout d'un doc à personnaliser
  3813 + $fn = $entity->photo ? 'sendEmailImgTo' : 'sendEmailPJTo';
  3814 + !$DEBUG && $this->$fn("$subject", $message, $email_addr, $configuration, $nomFic);
  3815 + }
  3816 + // Pour toutes les autres actions, mode par defaut (3) => simple envoi de mail
  3817 + else {
  3818 + //debug($subject);
  3819 + //debug($message);
  3820 + !$DEBUG && $this->sendEmailTo("$subject", $message, $email_addr, $configuration);
  3821 + }
3774 3822
3775 - } // switch  
3776 - } 3823 + ////} // entity not null
  3824 +
3777 } //foreach ($mailList as $mail) 3825 } //foreach ($mailList as $mail)
3778 - return $mailList; 3826 + $DEBUG && debug($mailList);
  3827 + $DEBUG && exit;
  3828 +
  3829 + return $mailList;
3779 3830
3780 } // sendmail() 3831 } // sendmail()
3781 3832
src/Controller/DocumentsController.php
@@ -54,6 +54,7 @@ class DocumentsController extends AppController @@ -54,6 +54,7 @@ class DocumentsController extends AppController
54 'add' => 'both', 54 'add' => 'both',
55 'edit' => 'log', 55 'edit' => 'log',
56 'delete' => 'both', 56 'delete' => 'both',
  57 + 'mailDevis' => 'both',
57 // ... 58 // ...
58 ]); 59 ]);
59 /* 60 /*
@@ -1017,7 +1018,7 @@ class DocumentsController extends AppController @@ -1017,7 +1018,7 @@ class DocumentsController extends AppController
1017 1018
1018 1019
1019 /** MI 1020 /** MI
1020 - * Envoi de mail - cette fonction sera appelée si l'on clique sur le bouton envelloppe d'un document sur la page vue d'un matériel 1021 + * Envoi de mail - cette fonction sera appelée si l'on clique sur le bouton enveloppe d'un document sur la page vue d'un matériel
1021 * Met en place l'envoi de mail 1022 * Met en place l'envoi de mail
1022 * @param string $id : document id 1023 * @param string $id : document id
1023 */ 1024 */
src/Controller/MaterielsController.php
@@ -288,10 +288,10 @@ class MaterielsController extends AppController { @@ -288,10 +288,10 @@ class MaterielsController extends AppController {
288 'statusCreated' => ['Dé-validation','dé-validé'], 288 'statusCreated' => ['Dé-validation','dé-validé'],
289 'statusValidated' => ['Validation','validé'], 289 'statusValidated' => ['Validation','validé'],
290 //TODO: spécial 290 //TODO: spécial
291 - 'statusTobearchived' => ["Demande d'archivage","demandé l'archivage", '', "d'un"], 291 + 'statusTobearchived' => ["Demande d'archivage","demandé l'archivage", '', "d'un "],
292 'statusArchived' => ['Archivage','archivé'], 292 'statusArchived' => ['Archivage','archivé'],
293 - 'setLabelIsPlaced' => ["Positionnement d'étiquette","posé l'étiquette", 'sur un', 'sur un'],  
294 - 'printLabelRuban' => ["Impression de l'étiquette", "imprimé l'étiquette", '', 'sur un'], 293 + 'setLabelIsPlaced' => ["Positionnement d'étiquette","posé l'étiquette", 'sur un ', 'sur le '],
  294 + 'printLabelRuban' => ["Impression de l'étiquette", "imprimé l'étiquette", '', 'sur le '],
295 ]); 295 ]);
296 296
297 297
@@ -304,15 +304,24 @@ class MaterielsController extends AppController { @@ -304,15 +304,24 @@ class MaterielsController extends AppController {
304 * 304 *
305 */ 305 */
306 $this->setNotificationAllowedOnActions([ 306 $this->setNotificationAllowedOnActions([
  307 +
  308 + // CRUD
307 'add' => 'both', 309 'add' => 'both',
308 - 'edit' => 'log', 310 + //'edit' => 'log',
  311 + //'edit' => 'mail',
  312 + 'edit' => 'both',
309 'delete' => 'both', 313 'delete' => 'both',
310 //'view', 314 //'view',
  315 +
  316 + // status changed
311 'statusCreated' => 'log', 317 'statusCreated' => 'log',
312 'statusTobearchived' => 'both', 318 'statusTobearchived' => 'both',
313 'statusValidated' => 'both', 319 'statusValidated' => 'both',
314 'statusArchived' => 'both', 320 'statusArchived' => 'both',
315 // ... 321 // ...
  322 +
  323 + // autres
  324 + 'printLabelRuban' => 'log',
316 'setLabelIsPlaced' => 'log', 325 'setLabelIsPlaced' => 'log',
317 ]); 326 ]);
318 /* 327 /*
@@ -474,15 +483,54 @@ class MaterielsController extends AppController { @@ -474,15 +483,54 @@ class MaterielsController extends AppController {
474 // 2) Puis on fait nos petites règles locales pour notre petit labo à nous tout seul 483 // 2) Puis on fait nos petites règles locales pour notre petit labo à nous tout seul
475 484
476 /* 485 /*
477 - // a) Adaptation des règles de notification  
478 - // Actions de ce controleur qui enverront des notifications (emails) 486 + * a) Noms et verbes à utiliser (surtout dans les notifications) pour les actions
  487 + *
  488 + */
  489 + /*
  490 + $this->setActionsNounAndPastVerb([
  491 + // Changement des noms et verbes utilisés pour la notif sur l'action 'dévalider'
  492 + 'statusCreated' => ['Dé-VAvalidation','dé-VAvalidé'],
  493 +
  494 + 'statusValidated' => ['Validation','validé'],
  495 + 'statusTobearchived' => ["Demande d'archivage","demandé l'archivage", '', "d'un "],
  496 + 'statusArchived' => ['Archivage','archivé'],
  497 + 'setLabelIsPlaced' => ["Positionnement d'étiquette","posé l'étiquette", 'sur un ', 'sur le '],
  498 + 'printLabelRuban' => ["Impression de l'étiquette", "imprimé l'étiquette", '', 'sur le '],
  499 + ]);
  500 + */
  501 +
  502 + /*
  503 + * b) Actions de ce controleur qui enverront des notifications (log et/ou email)
  504 + *
  505 + * 'log' = logger seulement
  506 + * 'mail' => envoyer un mail seulement
  507 + * 'both' = faire les 2 (logger ET envoyer un mail)
  508 + *
  509 + */
  510 + /*
479 $this->setNotificationAllowedOnActions([ 511 $this->setNotificationAllowedOnActions([
480 - 'add', 'edit', 'delete',  
481 - 'statusCreated', 'statusTobearchived', 'statusValidated', 'statusArchived', 512 + // CRUD
  513 + 'add' => 'both',
  514 + 'edit' => 'log',
  515 + 'delete' => 'both',
  516 + //'view',
  517 + // status changed
  518 + 'statusCreated' => 'log',
  519 + 'statusTobearchived' => 'both',
  520 + 'statusValidated' => 'both',
  521 + 'statusArchived' => 'both',
482 // ... 522 // ...
  523 + // autres
  524 + 'printLabelRuban' => 'log',
  525 + 'setLabelIsPlaced' => 'log',
483 ]); 526 ]);
  527 + */
484 528
485 - // b) Adaptation des règles d'accès (ACLs) 529 + /*
  530 + * c) Règles d'accès (ACLs)
  531 + *
  532 + */
  533 + /*
486 // - Adaptation de la règle pour "ajout par copie" 534 // - Adaptation de la règle pour "ajout par copie"
487 $this->setAuthorizationsForAction('add_by_copy', '', ['CREATED',0], [ 535 $this->setAuthorizationsForAction('add_by_copy', '', ['CREATED',0], [
488 'user' => ['CREATED',1], 536 'user' => ['CREATED',1],
@@ -501,6 +549,7 @@ class MaterielsController extends AppController { @@ -501,6 +549,7 @@ class MaterielsController extends AppController {
501 ]); 549 ]);
502 */ 550 */
503 } 551 }
  552 +
504 // Méthode de définition des autorisations SPÉCIFIQUES au laboratoire CRAL 553 // Méthode de définition des autorisations SPÉCIFIQUES au laboratoire CRAL
505 protected function setAuthorizations_CRAL() { 554 protected function setAuthorizations_CRAL() {
506 $this->d("SPECIFIC CRAL!"); 555 $this->d("SPECIFIC CRAL!");
@@ -3718,7 +3767,7 @@ class MaterielsController extends AppController { @@ -3718,7 +3767,7 @@ class MaterielsController extends AppController {
3718 $this->printLabel('ruban', $id, $from); 3767 $this->printLabel('ruban', $id, $from);
3719 //(EP202009) 3768 //(EP202009)
3720 //$this->sendEmail($this->Materiels->get($id)); 3769 //$this->sendEmail($this->Materiels->get($id));
3721 - $this->sendmail($this->Materiels->get($id)); 3770 + ////$this->sendmail($this->Materiels->get($id));
3722 3771
3723 } 3772 }
3724 3773
src/Controller/UsersController.php
@@ -82,7 +82,7 @@ class UsersController extends AppController @@ -82,7 +82,7 @@ class UsersController extends AppController
82 * 82 *
83 */ 83 */
84 $this->setNotificationAllowedOnActions([ 84 $this->setNotificationAllowedOnActions([
85 - //'login' => 'log', 85 + 'login' => 'log',
86 86
87 // Ne marchera pas car pas d'utilisateur en session 87 // Ne marchera pas car pas d'utilisateur en session
88 //'logout' => 'log', 88 //'logout' => 'log',
src/Model/Table/AppTable.php
@@ -54,8 +54,9 @@ class AppTable extends Table @@ -54,8 +54,9 @@ class AppTable extends Table
54 return $success; 54 return $success;
55 } 55 }
56 public function delete(EntityInterface $entity, $options = []) { 56 public function delete(EntityInterface $entity, $options = []) {
  57 + $DEBUG = false;
57 $this->current_entity = $entity; 58 $this->current_entity = $entity;
58 - //return parent::delete($entity,$options); 59 + if (!$DEBUG) return parent::delete($entity,$options);
59 return true; 60 return true;
60 } 61 }
61 62