Commit 04a2099cc84e1a6bf3db191d5b8ea58d3038fa28

Authored by Malik Imelhaine
2 parents 15aeeef2 379f42e9

Merge branch 'dev'

database/labinvent_last_version.sql
@@ -723,9 +723,11 @@ ALTER TABLE `variables` @@ -723,9 +723,11 @@ ALTER TABLE `variables`
723 723
724 -- Insertion par défaut 724 -- Insertion par défaut
725 Insert into type_suivis(nom) values ('Réparation'); 725 Insert into type_suivis(nom) values ('Réparation');
  726 +Insert into type_suivis(id,nom) values ('2','Panne');
726 Insert into sites(id, nom) values (9, 'N/A'); 727 Insert into sites(id, nom) values (9, 'N/A');
727 728
728 Insert into type_documents(id, nom) values (1, 'N/A'); 729 Insert into type_documents(id, nom) values (1, 'N/A');
  730 +Insert into type_documents(id, nom) values (13, 'Devis');
729 Insert into type_documents(nom) values ('Bon de commande'); 731 Insert into type_documents(nom) values ('Bon de commande');
730 Insert into type_documents(nom) values ('Bon de livraison'); 732 Insert into type_documents(nom) values ('Bon de livraison');
731 Insert into type_documents(nom) values ('Photo'); 733 Insert into type_documents(nom) values ('Photo');
database/update/db-update-2018-08-24.sh 0 → 100755
@@ -0,0 +1,39 @@ @@ -0,0 +1,39 @@
  1 +#!/bin/bash
  2 +
  3 +#myname=`basename $0 .sh`
  4 +myname=`basename $0`
  5 +myname=${myname%%.*}
  6 +
  7 +# Pour Mac OS recent (10.10, Yosemite), la syntaxe du SED est differente
  8 +# Il faut donc faire une copie de ce fichier et transformer les instructions sed a l'interieur
  9 +# Pour cela, il suffit d'executer ces 2 lignes :
  10 +# cp ce_script.sh ce_script_macosx.sh
  11 +# sed -e "s/ -i / -i '' /" -i '' ce_script_macosx.sh
  12 +
  13 +if [ ! -f ../../config/app.php ] ; then
  14 +echo "Vous devez executer ce script depuis le dossier database/update/"
  15 +exit 1
  16 +fi
  17 +
  18 +
  19 +# Get login, pass, dbname, and hostname
  20 +username=$(grep "/\*d\*/'username'" ../../config/app.php | cut -d"'" -f4)
  21 +password=$(grep "/\*d\*/'password'" ../../config/app.php | cut -d"'" -f4)
  22 +database=$(grep "/\*d\*/'database'" ../../config/app.php | cut -d"'" -f4)
  23 +host=$(grep "/\*d\*/'host'" ../../config/app.php | cut -d"'" -f4)
  24 +
  25 +
  26 +#cp -p ./script_sql/db-update-2016-07-01-irap.sql ./script_sql/db-update-2016-07-01-irap-build.sql
  27 +cp -p ./script_sql/$myname.sql ./script_sql/$myname-build.sql
  28 +
  29 +# Execute sql update script
  30 +sed -e "s/database/$database/" -i ./script_sql/$myname-build.sql
  31 +mysql --user=$username --password=$password -h $host < ./script_sql/$myname-build.sql
  32 +
  33 +# Delete cakephp cache
  34 +sudo rm ../../tmp/cache/models/*
  35 +sudo rm ../../tmp/cache/persistent/*
  36 +
  37 +sudo chmod -R 777 ../../tmp
  38 +sudo chmod -R 777 ../../vendor
  39 +sudo chmod -R 777 ../../webroot
database/update/script_sql/db-update-2018-08-24.sql 0 → 100755
@@ -0,0 +1,7 @@ @@ -0,0 +1,7 @@
  1 +use database;
  2 +
  3 +
  4 +INSERT INTO `type_suivis`(`id`, `nom`) VALUES ('5','Panne');
  5 +
  6 +INSERT INTO `type_documents`(`id`, `nom`) VALUES ('13','Devis');
  7 +
src/Controller/AppController.php
@@ -1026,7 +1026,7 @@ class AppController extends Controller @@ -1026,7 +1026,7 @@ class AppController extends Controller
1026 } 1026 }
1027 } 1027 }
1028 1028
1029 - // Fonction d'envoi de mails avec pièce jointe 1029 + // MI Fonction d'envoi de mails avec pièce jointe
1030 private function sendEmailPJTo($subject, $msg, $mail, $config, $nomDoc) 1030 private function sendEmailPJTo($subject, $msg, $mail, $config, $nomDoc)
1031 { 1031 {
1032 if ($mail != null && ! $config->test) { 1032 if ($mail != null && ! $config->test) {
@@ -1044,7 +1044,8 @@ class AppController extends Controller @@ -1044,7 +1044,8 @@ class AppController extends Controller
1044 } 1044 }
1045 } 1045 }
1046 } 1046 }
1047 - /**Version noob 1047 +
  1048 + /**Version MI - version modifiée de la fonction sendEmail par malik du 18 juin au 24 août
1048 * 1049 *
1049 * Envoi un mail avec un sujet, contenant un message à destination d'un email, selon l'action effectuée. 1050 * Envoi un mail avec un sujet, contenant un message à destination d'un email, selon l'action effectuée.
1050 * 1051 *
@@ -1252,57 +1253,19 @@ class AppController extends Controller @@ -1252,57 +1253,19 @@ class AppController extends Controller
1252 if ($configuration->envoi_mail && $action != 'printLabelRuban') { 1253 if ($configuration->envoi_mail && $action != 'printLabelRuban') {
1253 1254
1254 // owner's mail (utilisateur du matériel associé ) 1255 // owner's mail (utilisateur du matériel associé )
1255 - $mailList[0] = $entity->materiel->email_responsable; 1256 + //$mailList[0] = $entity->materiel->email_responsable;
1256 1257
1257 - // resp's mail  
1258 - $mailsRespMetier = null;  
1259 - $mailRespThematique = null;  
1260 - /*  
1261 - if ( $entity->materiel->groupes_metier_id != null && $entity->materiel->groupes_metier_id != 1) {  
1262 -  
1263 - // Le ..!= 1 c'est parce que le groupe métier/thématique d'id 1 correspond au groupe N/A, soit aucun groupe  
1264 - $mailsRespMetier = TableRegistry::get('Users')->find()  
1265 - ->select('email')  
1266 - ->where([  
1267 - 'role =' => 'Responsable',  
1268 - 'groupes_metier_id =' => $mat->groupes_metier_id  
1269 - ])  
1270 - ->toArray();  
1271 - $mailRespThematique = TableRegistry::get('Users')->find()  
1272 - ->select('email')  
1273 - ->where([  
1274 - 'role =' => 'Responsable',  
1275 - 'groupe_thematique_id =' => $mat->groupes_thematique_id  
1276 - ])  
1277 - ->toArray();  
1278 - }  
1279 -  
1280 - if ($mailsRespMetier != null || $mailRespThematique != null) {  
1281 - $mailsResp = array_unique(array_merge($mailsRespMetier, $mailRespThematique));  
1282 - for ($i = 0; $i < sizeof($mailsResp); $i ++) {  
1283 - $mailList[] = $mailsResp[$i]['email'];  
1284 - // $mailList[sizeof($mailList)] = $mailsResp[$i]['email'];  
1285 - }  
1286 - }  
1287 - */  
1288 -  
1289 - // mail admin de reference (ici appele gestionnaire) -> Partie administration  
1290 - // Cela a été mis en commentaire car de toute façon l'utilisateur va voir un administratif pour faire valider sa fiche,  
1291 - // Pas la peine de spam l'administration de mails non plus hein !  
1292 -  
1293 - //A remettre pour les docs ? 1258 + //MI - gestionaire ratachée au matériel
  1259 + $mailList[1]= TableRegistry::get('Users')->find()
  1260 + ->select('email')
  1261 + ->where([
  1262 + 'role =' => 'Administration',
  1263 + 'id =' => $materiel->gestionnaire_id
  1264 + ]);
1294 1265
1295 - /*  
1296 - * if ($action != 'statusValidated' && $action != 'statusArchived') {  
1297 - * $mailsAdmin = TableRegistry::get('Users')->find()->select('email')  
1298 - * ->where(['role =' => 'Administration'])  
1299 - * ->toArray();  
1300 - * for ($i = 0; $i < sizeof($mailsAdmin); $i ++) {  
1301 - * $mailList[sizeof($mailList)] = $mailsAdmin[$i]['email'];  
1302 - * }  
1303 - * }  
1304 - */  
1305 } 1266 }
  1267 +
  1268 +
1306 } else if ($entity instanceof Suivi) { 1269 } else if ($entity instanceof Suivi) {
1307 ; 1270 ;
1308 } else if ($entity instanceof Emprunt) { 1271 } else if ($entity instanceof Emprunt) {
src/Controller/DocumentsController.php
@@ -638,7 +638,7 @@ class DocumentsController extends AppController @@ -638,7 +638,7 @@ class DocumentsController extends AppController
638 638
639 639
640 640
641 - /* 641 + /* M - I
642 * 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 642 * 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
643 * Met en place l'envoi de mail 643 * Met en place l'envoi de mail
644 */ 644 */
@@ -685,4 +685,6 @@ class DocumentsController extends AppController @@ -685,4 +685,6 @@ class DocumentsController extends AppController
685 ]); 685 ]);
686 } 686 }
687 } 687 }
  688 +
  689 +
688 } 690 }
src/Controller/MaterielsController.php
@@ -1237,7 +1237,7 @@ class MaterielsController extends AppController @@ -1237,7 +1237,7 @@ class MaterielsController extends AppController
1237 //évite le double envoi car il y a un envoi de mail a la fonction add et à l'état created 1237 //évite le double envoi car il y a un envoi de mail a la fonction add et à l'état created
1238 //évite les envois succcessifs si qqn fait une erreur sur la fiche, valide la fiche, et dévalide pour remodifier 1238 //évite les envois succcessifs si qqn fait une erreur sur la fiche, valide la fiche, et dévalide pour remodifier
1239 if ($newStatus == 'ARCHIVED' || $newStatus == 'TOBEARCHIVED') { 1239 if ($newStatus == 'ARCHIVED' || $newStatus == 'TOBEARCHIVED') {
1240 - $this->sendEmail($materiel); 1240 + $this->sendmail($materiel,3);
1241 } 1241 }
1242 } 1242 }
1243 1243
src/Model/Table/DocumentsTable.php
@@ -71,14 +71,17 @@ class DocumentsTable extends AppTable @@ -71,14 +71,17 @@ class DocumentsTable extends AppTable
71 71
72 $validator->allowEmpty('suivi_id'); 72 $validator->allowEmpty('suivi_id');
73 73
74 - $validator->add('nom', 'alphaNumeric', [  
75 - 'rule' => 'alphaNumeric',  
76 - 'message' => __('Le nom du document ne doit contenir que des chiffres et des lettres.'), 74 + //Mi regex pour mettre la règle alphaNumericDashUnderscore
  75 + $validator->add('nom', 'alphaNumericDashUnderscore', [
  76 + 'rule' => ['custom', '|^[0-9a-zA-Z_-]*$|'],
  77 + 'message' => __('Le nom du document ne doit contenir que des chiffres, des lettres, des tirets, ou des tirets.'),
77 ]); 78 ]);
78 79
79 return $validator; 80 return $validator;
80 } 81 }
81 82
  83 +
  84 +
82 /** 85 /**
83 * Returns a rules checker object that will be used for validating 86 * Returns a rules checker object that will be used for validating
84 * application integrity. 87 * application integrity.
@@ -194,8 +197,8 @@ class DocumentsTable extends AppTable @@ -194,8 +197,8 @@ class DocumentsTable extends AppTable
194 $file = $entity->get('chemin_file'); 197 $file = $entity->get('chemin_file');
195 if (! empty($file['tmp_name'])) { 198 if (! empty($file['tmp_name'])) {
196 $extension = strtolower(pathinfo($file['name'], PATHINFO_EXTENSION)); 199 $extension = strtolower(pathinfo($file['name'], PATHINFO_EXTENSION));
197 - //nouvelle norme pour les noms de documents uploadés  
198 - // 200 + // MI nouvelle norme pour les noms de documents uploadés
  201 + // id(du matériel ou suivi associé)_NomDoc_id(Doc).extension
199 if(!$entity->get('materiel_id')== Null ) { 202 if(!$entity->get('materiel_id')== Null ) {
200 $id=$entity->get('materiel_id'); 203 $id=$entity->get('materiel_id');
201 } else { 204 } else {
@@ -215,8 +218,8 @@ class DocumentsTable extends AppTable @@ -215,8 +218,8 @@ class DocumentsTable extends AppTable
215 */ 218 */
216 public function afterDelete($event, $entity, $options) 219 public function afterDelete($event, $entity, $options)
217 { 220 {
218 - //nouvelle norme pour les noms de documents uploadés  
219 - // 221 + // MI nouvelle norme pour les noms de documents uploadés
  222 + // id(du matériel ou suivi associé)_NomDoc_id(Doc).extension
220 if(!$entity->get('materiel_id')== Null ) { 223 if(!$entity->get('materiel_id')== Null ) {
221 $id=$entity->get('materiel_id'); 224 $id=$entity->get('materiel_id');
222 } else { 225 } else {
src/Template/Element/menu_index.ctp
@@ -50,7 +50,7 @@ if (in_array($singularHumanName, [ @@ -50,7 +50,7 @@ if (in_array($singularHumanName, [
50 $bol = true; 50 $bol = true;
51 } 51 }
52 52
53 -//Pour l'ajout de fournisseurs par tous les profils il faut que le bouton d'ajout apparaisse 53 +//MI Pour l'ajout de fournisseurs par tous les profils il faut que le bouton d'ajout apparaisse
54 if(in_array($singularHumanName, ['Fournisseur'])) 54 if(in_array($singularHumanName, ['Fournisseur']))
55 $bol = true; 55 $bol = true;
56 56
src/Template/Element/menu_view.ctp
@@ -380,13 +380,13 @@ if ($isAuthorized == true) { @@ -380,13 +380,13 @@ if ($isAuthorized == true) {
380 <li> 380 <li>
381 381
382 <?php 382 <?php
383 - //Add action dans le cas des utilisateurs, et pour le superadmin 383 + //MI Add action dans le cas des utilisateurs, et pour le superadmin
384 //cela évite de devoir quitter la page pour repartir à la liste des utilisateurs pour faire un ajout 384 //cela évite de devoir quitter la page pour repartir à la liste des utilisateurs pour faire un ajout
385 385
386 386
387 if ($role == 'Super Administrateur' && strstr($t, 'utilisateur')) { 387 if ($role == 'Super Administrateur' && strstr($t, 'utilisateur')) {
388 $action = ' Ajouter un'; 388 $action = ' Ajouter un';
389 - echo $this->Form->postLink('<i class="icon-trash"></i>' . $action . ' ' . $t, [ 389 + echo $this->Form->postLink('<i class="icon-plus"></i>' . $action . ' ' . $t, [
390 'action' => 'add', 390 'action' => 'add',
391 $lien 391 $lien
392 ], [ 392 ], [
src/Template/Layout/default.ctp
@@ -119,7 +119,7 @@ $cakeDescription = &#39;Labinvent 2&#39;; @@ -119,7 +119,7 @@ $cakeDescription = &#39;Labinvent 2&#39;;
119 </i></td> 119 </i></td>
120 <td id="version"> 120 <td id="version">
121 <!-- VERSION M.m.f.b (version (M)ajeure, version (m)ineure, numero de nouvelle (f)onctionnalite, numero de (b)ugfix) --> 121 <!-- VERSION M.m.f.b (version (M)ajeure, version (m)ineure, numero de nouvelle (f)onctionnalite, numero de (b)ugfix) -->
122 - <font color="black">VERSION 2.8.0.7 (23/01/2018)</font> <br /> <font 122 + <font color="black">VERSION 2.9.0.0 (23/01/2018)</font> <br /> <font
123 color="black"><a 123 color="black"><a
124 href="<?php 124 href="<?php
125 125