From b584227aa6ed76a453761148dc503069a07aaaab Mon Sep 17 00:00:00 2001 From: Malik Imelhaine Date: Fri, 24 Aug 2018 11:57:07 +0200 Subject: [PATCH] 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 | 39 +++++++++++++++++++++++++++++++++++++++ database/update/script_sql/db-update-2018-08-24.sql | 7 +++++++ src/Controller/AppController.php | 61 ++++++++++++------------------------------------------------- src/Controller/DocumentsController.php | 4 +++- src/Controller/MaterielsController.php | 2 +- src/Model/Table/DocumentsTable.php | 17 ++++++++++------- src/Template/Element/menu_index.ctp | 2 +- src/Template/Element/menu_view.ctp | 4 ++-- src/Template/Layout/default.ctp | 2 +- 9 files changed, 76 insertions(+), 62 deletions(-) create mode 100755 database/update/db-update-2018-08-24.sh create mode 100755 database/update/script_sql/db-update-2018-08-24.sql diff --git a/database/update/db-update-2018-08-24.sh b/database/update/db-update-2018-08-24.sh new file mode 100755 index 0000000..242015a --- /dev/null +++ b/database/update/db-update-2018-08-24.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +#myname=`basename $0 .sh` +myname=`basename $0` +myname=${myname%%.*} + +# Pour Mac OS recent (10.10, Yosemite), la syntaxe du SED est differente +# Il faut donc faire une copie de ce fichier et transformer les instructions sed a l'interieur +# Pour cela, il suffit d'executer ces 2 lignes : +# cp ce_script.sh ce_script_macosx.sh +# sed -e "s/ -i / -i '' /" -i '' ce_script_macosx.sh + +if [ ! -f ../../config/app.php ] ; then +echo "Vous devez executer ce script depuis le dossier database/update/" +exit 1 +fi + + +# Get login, pass, dbname, and hostname +username=$(grep "/\*d\*/'username'" ../../config/app.php | cut -d"'" -f4) +password=$(grep "/\*d\*/'password'" ../../config/app.php | cut -d"'" -f4) +database=$(grep "/\*d\*/'database'" ../../config/app.php | cut -d"'" -f4) +host=$(grep "/\*d\*/'host'" ../../config/app.php | cut -d"'" -f4) + + +#cp -p ./script_sql/db-update-2016-07-01-irap.sql ./script_sql/db-update-2016-07-01-irap-build.sql +cp -p ./script_sql/$myname.sql ./script_sql/$myname-build.sql + +# Execute sql update script +sed -e "s/database/$database/" -i ./script_sql/$myname-build.sql +mysql --user=$username --password=$password -h $host < ./script_sql/$myname-build.sql + +# Delete cakephp cache +sudo rm ../../tmp/cache/models/* +sudo rm ../../tmp/cache/persistent/* + +sudo chmod -R 777 ../../tmp +sudo chmod -R 777 ../../vendor +sudo chmod -R 777 ../../webroot diff --git a/database/update/script_sql/db-update-2018-08-24.sql b/database/update/script_sql/db-update-2018-08-24.sql new file mode 100755 index 0000000..96bd1bf --- /dev/null +++ b/database/update/script_sql/db-update-2018-08-24.sql @@ -0,0 +1,7 @@ +use database; + + +INSERT INTO `type_suivis`(`id`, `nom`) VALUES ('5','Panne'); + +INSERT INTO `type_documents`(`id`, `nom`) VALUES ('13','Devis'); + diff --git a/src/Controller/AppController.php b/src/Controller/AppController.php index ef7dbc5..d406d69 100755 --- a/src/Controller/AppController.php +++ b/src/Controller/AppController.php @@ -1026,7 +1026,7 @@ class AppController extends Controller } } - // Fonction d'envoi de mails avec pièce jointe + // MI Fonction d'envoi de mails avec pièce jointe private function sendEmailPJTo($subject, $msg, $mail, $config, $nomDoc) { if ($mail != null && ! $config->test) { @@ -1044,7 +1044,8 @@ class AppController extends Controller } } } - /**Version noob + + /**Version MI - version modifiée de la fonction sendEmail par malik du 18 juin au 24 août * * Envoi un mail avec un sujet, contenant un message à destination d'un email, selon l'action effectuée. * @@ -1254,55 +1255,17 @@ class AppController extends Controller // owner's mail (utilisateur du matériel associé ) $mailList[0] = $entity->materiel->email_responsable; - // resp's mail - $mailsRespMetier = null; - $mailRespThematique = null; - /* - if ( $entity->materiel->groupes_metier_id != null && $entity->materiel->groupes_metier_id != 1) { - - // Le ..!= 1 c'est parce que le groupe métier/thématique d'id 1 correspond au groupe N/A, soit aucun groupe - $mailsRespMetier = TableRegistry::get('Users')->find() - ->select('email') - ->where([ - 'role =' => 'Responsable', - 'groupes_metier_id =' => $mat->groupes_metier_id - ]) - ->toArray(); - $mailRespThematique = TableRegistry::get('Users')->find() - ->select('email') - ->where([ - 'role =' => 'Responsable', - 'groupe_thematique_id =' => $mat->groupes_thematique_id - ]) - ->toArray(); - } - - if ($mailsRespMetier != null || $mailRespThematique != null) { - $mailsResp = array_unique(array_merge($mailsRespMetier, $mailRespThematique)); - for ($i = 0; $i < sizeof($mailsResp); $i ++) { - $mailList[] = $mailsResp[$i]['email']; - // $mailList[sizeof($mailList)] = $mailsResp[$i]['email']; - } - } - */ - - // mail admin de reference (ici appele gestionnaire) -> Partie administration - // Cela a été mis en commentaire car de toute façon l'utilisateur va voir un administratif pour faire valider sa fiche, - // Pas la peine de spam l'administration de mails non plus hein ! - - //A remettre pour les docs ? + //MI - gestionaire ratachée au matériel + $mailList[1]= TableRegistry::get('Users')->find() + ->select('email') + ->where([ + 'role =' => 'Administration', + 'id =' => $materiel->gestionnaire_id + ]); - /* - * if ($action != 'statusValidated' && $action != 'statusArchived') { - * $mailsAdmin = TableRegistry::get('Users')->find()->select('email') - * ->where(['role =' => 'Administration']) - * ->toArray(); - * for ($i = 0; $i < sizeof($mailsAdmin); $i ++) { - * $mailList[sizeof($mailList)] = $mailsAdmin[$i]['email']; - * } - * } - */ } + + } else if ($entity instanceof Suivi) { ; } else if ($entity instanceof Emprunt) { diff --git a/src/Controller/DocumentsController.php b/src/Controller/DocumentsController.php index 66e03d7..79f728c 100755 --- a/src/Controller/DocumentsController.php +++ b/src/Controller/DocumentsController.php @@ -638,7 +638,7 @@ class DocumentsController extends AppController - /* + /* M - I * 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 * Met en place l'envoi de mail */ @@ -685,4 +685,6 @@ class DocumentsController extends AppController ]); } } + + } diff --git a/src/Controller/MaterielsController.php b/src/Controller/MaterielsController.php index f89472c..c47a915 100755 --- a/src/Controller/MaterielsController.php +++ b/src/Controller/MaterielsController.php @@ -1237,7 +1237,7 @@ class MaterielsController extends AppController //évite le double envoi car il y a un envoi de mail a la fonction add et à l'état created //évite les envois succcessifs si qqn fait une erreur sur la fiche, valide la fiche, et dévalide pour remodifier if ($newStatus == 'ARCHIVED' || $newStatus == 'TOBEARCHIVED') { - $this->sendEmail($materiel); + $this->sendmail($materiel); } } diff --git a/src/Model/Table/DocumentsTable.php b/src/Model/Table/DocumentsTable.php index 0710977..790b276 100755 --- a/src/Model/Table/DocumentsTable.php +++ b/src/Model/Table/DocumentsTable.php @@ -71,14 +71,17 @@ class DocumentsTable extends AppTable $validator->allowEmpty('suivi_id'); - $validator->add('nom', 'alphaNumeric', [ - 'rule' => 'alphaNumeric', - 'message' => __('Le nom du document ne doit contenir que des chiffres et des lettres.'), + //Mi regex pour mettre la règle alphaNumericDashUnderscore + $validator->add('nom', 'alphaNumericDashUnderscore', [ + 'rule' => ['custom', '|^[0-9a-zA-Z_-]*$|'], + 'message' => __('Le nom du document ne doit contenir que des chiffres, des lettres, des tirets, ou des tirets.'), ]); return $validator; } + + /** * Returns a rules checker object that will be used for validating * application integrity. @@ -194,8 +197,8 @@ class DocumentsTable extends AppTable $file = $entity->get('chemin_file'); if (! empty($file['tmp_name'])) { $extension = strtolower(pathinfo($file['name'], PATHINFO_EXTENSION)); - //nouvelle norme pour les noms de documents uploadés - // + // MI nouvelle norme pour les noms de documents uploadés + // id(du matériel ou suivi associé)_NomDoc_id(Doc).extension if(!$entity->get('materiel_id')== Null ) { $id=$entity->get('materiel_id'); } else { @@ -215,8 +218,8 @@ class DocumentsTable extends AppTable */ public function afterDelete($event, $entity, $options) { - //nouvelle norme pour les noms de documents uploadés - // + // MI nouvelle norme pour les noms de documents uploadés + // id(du matériel ou suivi associé)_NomDoc_id(Doc).extension if(!$entity->get('materiel_id')== Null ) { $id=$entity->get('materiel_id'); } else { diff --git a/src/Template/Element/menu_index.ctp b/src/Template/Element/menu_index.ctp index e3a08ec..8e54e4c 100755 --- a/src/Template/Element/menu_index.ctp +++ b/src/Template/Element/menu_index.ctp @@ -50,7 +50,7 @@ if (in_array($singularHumanName, [ $bol = true; } -//Pour l'ajout de fournisseurs par tous les profils il faut que le bouton d'ajout apparaisse +//MI Pour l'ajout de fournisseurs par tous les profils il faut que le bouton d'ajout apparaisse if(in_array($singularHumanName, ['Fournisseur'])) $bol = true; diff --git a/src/Template/Element/menu_view.ctp b/src/Template/Element/menu_view.ctp index 1aa1d78..5b86897 100755 --- a/src/Template/Element/menu_view.ctp +++ b/src/Template/Element/menu_view.ctp @@ -380,13 +380,13 @@ if ($isAuthorized == true) {
  • Form->postLink('' . $action . ' ' . $t, [ + echo $this->Form->postLink('' . $action . ' ' . $t, [ 'action' => 'add', $lien ], [ diff --git a/src/Template/Layout/default.ctp b/src/Template/Layout/default.ctp index 34668bb..f0d525d 100755 --- a/src/Template/Layout/default.ctp +++ b/src/Template/Layout/default.ctp @@ -119,7 +119,7 @@ $cakeDescription = 'Labinvent 2'; - VERSION 2.8.0.7 (23/01/2018)
    VERSION 2.9.0.0 (23/01/2018)