Commit 04a2099cc84e1a6bf3db191d5b8ea58d3038fa28
Exists in
master
and in
3 other branches
Merge branch 'dev'
Showing
10 changed files
with
79 additions
and
63 deletions
Show diff stats
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'); |
@@ -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 |
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 = 'Labinvent 2'; | @@ -119,7 +119,7 @@ $cakeDescription = 'Labinvent 2'; | ||
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 |