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 723  
724 724 -- Insertion par défaut
725 725 Insert into type_suivis(nom) values ('Réparation');
  726 +Insert into type_suivis(id,nom) values ('2','Panne');
726 727 Insert into sites(id, nom) values (9, 'N/A');
727 728  
728 729 Insert into type_documents(id, nom) values (1, 'N/A');
  730 +Insert into type_documents(id, nom) values (13, 'Devis');
729 731 Insert into type_documents(nom) values ('Bon de commande');
730 732 Insert into type_documents(nom) values ('Bon de livraison');
731 733 Insert into type_documents(nom) values ('Photo');
... ...
database/update/db-update-2018-08-24.sh 0 → 100755
... ... @@ -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 @@
  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 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 1030 private function sendEmailPJTo($subject, $msg, $mail, $config, $nomDoc)
1031 1031 {
1032 1032 if ($mail != null && ! $config->test) {
... ... @@ -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 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 1253 if ($configuration->envoi_mail && $action != 'printLabelRuban') {
1253 1254  
1254 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 1269 } else if ($entity instanceof Suivi) {
1307 1270 ;
1308 1271 } else if ($entity instanceof Emprunt) {
... ...
src/Controller/DocumentsController.php
... ... @@ -638,7 +638,7 @@ class DocumentsController extends AppController
638 638  
639 639  
640 640  
641   - /*
  641 + /* M - I
642 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 643 * Met en place l'envoi de mail
644 644 */
... ... @@ -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 1237 //évite le double envoi car il y a un envoi de mail a la fonction add et à l'état created
1238 1238 //évite les envois succcessifs si qqn fait une erreur sur la fiche, valide la fiche, et dévalide pour remodifier
1239 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 71  
72 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 80 return $validator;
80 81 }
81 82  
  83 +
  84 +
82 85 /**
83 86 * Returns a rules checker object that will be used for validating
84 87 * application integrity.
... ... @@ -194,8 +197,8 @@ class DocumentsTable extends AppTable
194 197 $file = $entity->get('chemin_file');
195 198 if (! empty($file['tmp_name'])) {
196 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 202 if(!$entity->get('materiel_id')== Null ) {
200 203 $id=$entity->get('materiel_id');
201 204 } else {
... ... @@ -215,8 +218,8 @@ class DocumentsTable extends AppTable
215 218 */
216 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 223 if(!$entity->get('materiel_id')== Null ) {
221 224 $id=$entity->get('materiel_id');
222 225 } else {
... ...
src/Template/Element/menu_index.ctp
... ... @@ -50,7 +50,7 @@ if (in_array($singularHumanName, [
50 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 54 if(in_array($singularHumanName, ['Fournisseur']))
55 55 $bol = true;
56 56  
... ...
src/Template/Element/menu_view.ctp
... ... @@ -380,13 +380,13 @@ if ($isAuthorized == true) {
380 380 <li>
381 381  
382 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 384 //cela évite de devoir quitter la page pour repartir à la liste des utilisateurs pour faire un ajout
385 385  
386 386  
387 387 if ($role == 'Super Administrateur' && strstr($t, 'utilisateur')) {
388 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 390 'action' => 'add',
391 391 $lien
392 392 ], [
... ...
src/Template/Layout/default.ctp
... ... @@ -119,7 +119,7 @@ $cakeDescription = &#39;Labinvent 2&#39;;
119 119 </i></td>
120 120 <td id="version">
121 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 123 color="black"><a
124 124 href="<?php
125 125  
... ...