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 @@
  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 *
... ... @@ -1254,55 +1255,17 @@ class AppController extends Controller
1254 1255 // owner's mail (utilisateur du matériel associé )
1255 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);
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  
... ...