Commit b584227aa6ed76a453761148dc503069a07aaaab

Authored by Malik Imelhaine
1 parent 727b4dd0

Dernier Update + Last modification par Malik

J'ai modifié la règle alphanumerique sur les noms des documents pour
qu'elle accepte aussi les tirets et les underscore,
J'ai ajouté le script d'insertion du type de doc Devis, et du type de
suivi Panne dans les database updates,
J'ai fait passer la version de git à 2.9.0.0
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 *
@@ -1254,55 +1255,17 @@ class AppController extends Controller @@ -1254,55 +1255,17 @@ class AppController extends Controller
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);
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