From 19798ef9cf669701d2c27b9394da46d1232369bb Mon Sep 17 00:00:00 2001 From: Alexandre Cases Date: Fri, 6 May 2016 14:23:17 +0200 Subject: [PATCH] Mode_install, maj script_install, page d'acceuil -> login, maj script bd --- database/labinvent_2.0_19-04-16.sql | 5 +++++ install/installation.sh | 7 +++---- src/Controller/CategoriesController.php | 10 +++++++--- src/Controller/EmpruntsController.php | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---- src/Controller/MaterielsController.php | 65 +++++++++++++++++++++++++++++++++++++++++------------------------ src/Controller/PagesController.php | 5 +++++ src/Controller/SousCategoriesController.php | 6 ++++-- src/Controller/SuivisController.php | 19 +++++++++++++++---- src/Controller/UsersController.php | 6 ++++-- src/Model/Table/EmpruntsTable.php | 98 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------- src/Model/Table/MaterielsTable.php | 121 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------ src/Model/Table/SuivisTable.php | 65 +++++++++++++++++++++++++++++++++++++++++++++++++---------------- src/Template/Categories/add.ctp | 2 +- src/Template/Categories/edit.ctp | 2 +- src/Template/Categories/view.ctp | 27 +++++++++++++++++++++++++++ src/Template/Emprunts/add.ctp | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------- src/Template/Emprunts/edit.ctp | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------- src/Template/Emprunts/index.ctp | 3 --- src/Template/Layout/default.ctp | 7 +++---- src/Template/Materiels/add.ctp | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------- src/Template/Materiels/edit.ctp | 245 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------- src/Template/Materiels/view.ctp | 29 +++++++++++++++++++++++++++-- src/Template/Pages/home.ctp | 4 ++-- src/Template/Pages/home_app.ctp | 11 +---------- src/Template/Pages/home_debug.ctp | 150 ------------------------------------------------------------------------------------------------------------------------------------------------------ src/Template/Pages/home_install.ctp | 150 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/Template/Pages/tools.ctp | 10 +++------- src/Template/SousCategories/add.ctp | 2 +- src/Template/SousCategories/edit.ctp | 2 +- src/Template/Suivis/add.ctp | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------ src/Template/Suivis/edit.ctp | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------ src/Template/Suivis/index.ctp | 3 --- src/Template/SurCategories/view.ctp | 28 ++++++++++++++++++++++++++++ src/Template/Users/add.ctp | 15 +++++++++++---- src/Template/Users/edit.ctp | 34 +++++++++++++++------------------- src/Template/Users/login.ctp | 4 ++-- 36 files changed, 1207 insertions(+), 443 deletions(-) delete mode 100755 src/Template/Pages/home_debug.ctp create mode 100755 src/Template/Pages/home_install.ctp diff --git a/database/labinvent_2.0_19-04-16.sql b/database/labinvent_2.0_19-04-16.sql index 20b2a5f..38a0096 100755 --- a/database/labinvent_2.0_19-04-16.sql +++ b/database/labinvent_2.0_19-04-16.sql @@ -28,7 +28,12 @@ CREATE SCHEMA IF NOT EXISTS mydb DEFAULT CHARACTER SET latin1; -- ni avec ceci : -- grant all on mydb.* to 'bddUserName'@'%' identified by 'bddUserPass'; -- Il faut donc faire ceci (ajouter localhost) et on pourra alors se connecter a la BD !!! : + +-- Il faut supprimer l'utilisateur avant de l'ajouter. +GRANT USAGE ON *.* TO 'mydb'; +DROP USER 'mydb'; grant all on mydb.* to 'mydb'@'localhost' identified by 'mydb1'; + -- Mais, ca serait plus prudent de limiter les droits (au lieu de "grant all"): -- grant select,insert,update,delete on mydb.* to ... flush privileges; diff --git a/install/installation.sh b/install/installation.sh index 7c1ab68..9690d39 100755 --- a/install/installation.sh +++ b/install/installation.sh @@ -356,14 +356,13 @@ echo "Si vous voulez le conserver, le script de creation de la BD est database/b echo echo "MAINTENANT :" echo "1) Verifiez que la BD d'inventaire ($bddName) a bien ete cree (avec phpmyadmin par exemple)" -echo "2) Verifiez le contenu de votre fichier de configuration de la BD (config/app.php)" +echo "2) Allez sur l'application, vous devriez arriver par défaut sur un mode install vous donnant des informations sur la configuration de votre application, vérifiez que tout les points soit validé, sinon rajouter les extensions manquantes..." echo "3) Testez l'accès à l'application par le web" -echo "Pour cela, suivez la suite des instructions qui sont dans le fichier INSTALLATION.txt (à la racine du projet), que vous avez normalement deja commence a lire." +echo "Pour aller sur l'application, suivez la suite des instructions qui sont dans le fichier INSTALLATION.txt (à la racine du projet), que vous avez normalement deja commence a lire." echo echo "N'oubliez pas 3 choses importantes (voir la doc INSTALLATION.txt pour plus de details) :" echo "1) Passer en mode LDAP (si vous le souhaitez et si ca n'est pas deja fait)" echo "2) Personnaliser les 2 fichiers logos suivants dans webroot/img/ :" echo "- logo_entity.jpg : le logo du laboratoire" echo "- logo_software.jpg : le logo du logiciel" -echo "3) Personnaliser le logiciel pour votre entite (laboratoire) (via le fichier de configuration config/app.php) -echo +echo "3) Personnaliser le logiciel pour votre entite (laboratoire) (via le menu de configuration dans la section outils de l'application)" diff --git a/src/Controller/CategoriesController.php b/src/Controller/CategoriesController.php index 3591642..a254212 100755 --- a/src/Controller/CategoriesController.php +++ b/src/Controller/CategoriesController.php @@ -39,7 +39,9 @@ class CategoriesController extends AppController $category = $this->Categories->get($id, [ 'contain' => ['SurCategories'] ]); - + //$sousCategories = $this->Categories->SousCategories->find('list'); + //$this->set('sousCategories', $sousCategories); + $this->set('category', $category); $this->set('_serialize', ['category']); } @@ -61,7 +63,8 @@ class CategoriesController extends AppController $this->Flash->error(__('La catégorie n\'a pas pu être ajouté.')); } } - $surCategories = $this->Categories->SurCategories->find('list', ['limit' => 200]); + $surCategories = $this->Categories->SurCategories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']); + $this->set(compact('category', 'surCategories')); $this->set('_serialize', ['category']); } @@ -87,7 +90,8 @@ class CategoriesController extends AppController $this->Flash->error(__('La catégorie n\'a pas pu être édité.')); } } - $surCategories = $this->Categories->SurCategories->find('list', ['limit' => 200]); + $surCategories = $this->Categories->SurCategories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']); + $this->set(compact('category', 'surCategories')); $this->set('_serialize', ['category']); } diff --git a/src/Controller/EmpruntsController.php b/src/Controller/EmpruntsController.php index fb5a82e..fb2270b 100755 --- a/src/Controller/EmpruntsController.php +++ b/src/Controller/EmpruntsController.php @@ -2,6 +2,8 @@ namespace App\Controller; use App\Controller\AppController; +use Cake\ORM\TableRegistry; + /** * Emprunts Controller @@ -61,8 +63,33 @@ class EmpruntsController extends AppController $this->Flash->error(__('L\'emprunt n\'a pas pu être ajouté..')); } } - $materiels = $this->Emprunts->Materiels->find('list', ['limit' => 200]); - $this->set(compact('emprunt', 'materiels')); + $materiels = $this->Emprunts->Materiels->find('list'); + $numMateriel = $this->Emprunts->Materiels->find()->select('numero_laboratoire')->where(['id =' => $this->passedArgs[0]])->first()['numero_laboratoire']; + + // Gestion du lieu de stockage : soit on cache la DIV 'interne' et on affiche la DIV 'externe', soit on fait l'inverse (par defaut, interne) + $disp_interne = 'display:block'; + $disp_externe = 'display:none'; + $interne = $emprunt->get('emprunt_interne'); + if (isset($interne)) { + if ($emprunt->get('emprunt_interne') == 1) { + $disp_interne = 'display:block'; + $disp_externe = 'display:none'; + } else { + $disp_interne = 'display:none'; + $disp_externe = 'display:block'; + } + } + $nom_emprunteur_int = $this->Auth->user('username'); + $mail_emprunteur_int = TableRegistry::get('Users')->find()->select('email')->where(['username =' => $this->Auth->user('username')])->first()['email']; + + $nom_emprunteur_ext = ''; + $mail_emprunteur_ext = ''; + + $utilisateurs = TableRegistry::get('Users')->find('list', [ 'keyField' => 'nom', 'valueField' => 'nom']); + + $sites = TableRegistry::get('Sites')->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']); + + $this->set(compact('emprunt', 'materiels', 'numMateriel', 'disp_externe', 'disp_interne', 'nom_emprunteur_int', 'mail_emprunteur_int', 'nom_emprunteur_ext', 'mail_emprunteur_ext', 'utilisateurs', 'sites')); $this->set('_serialize', ['emprunt']); } @@ -87,8 +114,33 @@ class EmpruntsController extends AppController $this->Flash->error(__('L\'emprunt n\'a pas pu être édité.')); } } - $materiels = $this->Emprunts->Materiels->find('list', ['limit' => 200]); - $this->set(compact('emprunt', 'materiels')); + $materiels = $this->Emprunts->Materiels->find('list'); + $numMateriel = $this->Emprunts->Materiels->find()->select('numero_laboratoire')->where(['id =' => $emprunt->get('materiel_id')])->first()['numero_laboratoire']; + + // Gestion du lieu de stockage : soit on cache la DIV 'interne' et on affiche la DIV 'externe', soit on fait l'inverse (par defaut, interne) + $disp_interne = 'display:block'; + $disp_externe = 'display:none'; + $interne = $emprunt->get('emprunt_interne'); + if (isset ($interne)) { + if ($emprunt->get('emprunt_interne') == 1) { + $disp_interne = 'display:block'; + $disp_externe = 'display:none'; + } else { + $disp_interne = 'display:none'; + $disp_externe = 'display:block'; + } + } + $nom_emprunteur_int = $this->Auth->user('username'); + $mail_emprunteur_int = TableRegistry::get('Users')->find()->select('email')->where(['username =' => $this->Auth->user('username')])->first()['email']; + + $nom_emprunteur_ext = ''; + $mail_emprunteur_ext = ''; + + $utilisateurs = TableRegistry::get('Users')->find('list', [ 'keyField' => 'nom', 'valueField' => 'nom']); + + $sites = TableRegistry::get('Sites')->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']); + + $this->set(compact('emprunt', 'materiels', 'numMateriel', 'disp_externe', 'disp_interne', 'nom_emprunteur_int', 'mail_emprunteur_int', 'nom_emprunteur_ext', 'mail_emprunteur_ext', 'utilisateurs', 'sites')); $this->set('_serialize', ['emprunt']); } diff --git a/src/Controller/MaterielsController.php b/src/Controller/MaterielsController.php index 4a22920..a0fb7c9 100755 --- a/src/Controller/MaterielsController.php +++ b/src/Controller/MaterielsController.php @@ -3,6 +3,7 @@ namespace App\Controller; use App\Controller\AppController; use Cake\Core\Configure; +use Cake\ORM\TableRegistry; /** * Materiels Controller @@ -64,14 +65,19 @@ class MaterielsController extends AppController $this->Flash->error(__('Le matériel n\'a pas pu être ajouté.')); } } - $surCategories = $this->Materiels->SurCategories->find('list', ['limit' => 200]); - $categories = $this->Materiels->Categories->find('list', ['limit' => 200]); - $sousCategories = $this->Materiels->SousCategories->find('list', ['limit' => 200]); - $groupesThematiques = $this->Materiels->GroupesThematiques->find('list', ['limit' => 200]); - $groupesMetiers = $this->Materiels->GroupesMetiers->find('list', ['limit' => 200]); - $organismes = $this->Materiels->Organismes->find('list', ['limit' => 200]); - $sites = $this->Materiels->Sites->find('list', ['limit' => 200]); - $this->set(compact('materiel', 'surCategories', 'categories', 'sousCategories', 'groupesThematiques', 'groupesMetiers', 'organismes', 'sites')); + $surCategories = $this->Materiels->SurCategories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']); + $categories = $this->Materiels->Categories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']); + $sousCategories = $this->Materiels->SousCategories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']); + $groupesThematiques = $this->Materiels->GroupesThematiques->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']); + $groupesMetiers = $this->Materiels->GroupesMetiers->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']); + $organismes = $this->Materiels->Organismes->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']); + $sites = $this->Materiels->Sites->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']); + + $utilisateurs = TableRegistry::get('Users')->find('list', [ 'keyField' => 'nom', 'valueField' => 'nom']); + + $mail_responsable = TableRegistry::get('Users')->find()->select('email')->where(['username =' => $this->Auth->user('username')])->first()['email']; + + $this->set(compact('materiel', 'surCategories', 'categories', 'sousCategories', 'groupesThematiques', 'groupesMetiers', 'organismes', 'sites', 'utilisateurs', 'mail_responsable')); $this->set('_serialize', ['materiel']); } @@ -96,14 +102,25 @@ class MaterielsController extends AppController $this->Flash->error(__('Le matériel n\'a pas pu être édité.')); } } - $surCategories = $this->Materiels->SurCategories->find('list', ['limit' => 200]); - $categories = $this->Materiels->Categories->find('list', ['limit' => 200]); - $sousCategories = $this->Materiels->SousCategories->find('list', ['limit' => 200]); - $groupesThematiques = $this->Materiels->GroupesThematiques->find('list', ['limit' => 200]); - $groupesMetiers = $this->Materiels->GroupesMetiers->find('list', ['limit' => 200]); - $organismes = $this->Materiels->Organismes->find('list', ['limit' => 200]); - $sites = $this->Materiels->Sites->find('list', ['limit' => 200]); - $this->set(compact('materiel', 'surCategories', 'categories', 'sousCategories', 'groupesThematiques', 'groupesMetiers', 'organismes', 'sites')); + $surCategories = $this->Materiels->SurCategories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']); + $categories = $this->Materiels->Categories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']); + $sousCategories = $this->Materiels->SousCategories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']); + $groupesThematiques = $this->Materiels->GroupesThematiques->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']); + $groupesMetiers = $this->Materiels->GroupesMetiers->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']); + $organismes = $this->Materiels->Organismes->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']); + $sites = $this->Materiels->Sites->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']); + + $utilisateurs = TableRegistry::get('Users')->find('list', [ 'keyField' => 'nom', 'valueField' => 'nom']); + + if(!empty($materiel->get('nom_responsable'))){ + if(!in_array($materiel->get('nom_responsable'), $utilisateurs->toArray())){ + $nom_ancien_responsable = $materiel->get('nom_responsable'); + $this->set(compact('nom_ancien_responsable')); + } + } + $mail_responsable = TableRegistry::get('Users')->find()->select('email')->where(['username =' => $this->Auth->user('username')])->first()['email']; + + $this->set(compact('materiel', 'surCategories', 'categories', 'sousCategories', 'groupesThematiques', 'groupesMetiers', 'organismes', 'sites', 'utilisateurs', 'mail_responsable')); $this->set('_serialize', ['materiel']); } @@ -135,25 +152,25 @@ class MaterielsController extends AppController } /** - * Activate debug mode + * Activate install mode * * @return \Cake\Network\Response|NULL */ - public function debugOn() { - //Configure::write('debug',true); - $this->request->session()->write('debug',true); + public function installOn() { + //Configure::write('install',true); + $this->request->session()->write('install',true); return $this->redirect(['controller' => 'pages', 'action' => 'home']); } /** - * Desactivate debug mode + * Desactivate install mode * * @return \Cake\Network\Response|NULL */ - public function debugOff() { - //Configure::write('debug', false); - $this->request->session()->write('debug',false); + public function installOff() { + //Configure::write('install', false); + $this->request->session()->write('install',false); return $this->redirect(['controller' => 'pages', 'action' => 'tools']); } diff --git a/src/Controller/PagesController.php b/src/Controller/PagesController.php index 74d548d..033d49c 100755 --- a/src/Controller/PagesController.php +++ b/src/Controller/PagesController.php @@ -37,6 +37,11 @@ class PagesController extends AppController */ public function display() { + //Si l'utilisateur n'est pas connecté, on le redirige vers la page login.ctp + if (!($this->Auth->user('id'))) { + return $this->redirect(['controller' => 'users', 'action' => 'login']); + } + $path = func_get_args(); $count = count($path); diff --git a/src/Controller/SousCategoriesController.php b/src/Controller/SousCategoriesController.php index 8199b81..c262500 100755 --- a/src/Controller/SousCategoriesController.php +++ b/src/Controller/SousCategoriesController.php @@ -61,7 +61,8 @@ class SousCategoriesController extends AppController $this->Flash->error(__('La sous-catégorie n\'as pas pu être ajouté.')); } } - $categories = $this->SousCategories->Categories->find('list', ['limit' => 200]); + $categories = $this->SousCategories->Categories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']); + $this->set(compact('sousCategory', 'categories')); $this->set('_serialize', ['sousCategory']); } @@ -87,7 +88,8 @@ class SousCategoriesController extends AppController $this->Flash->error(__('La sous-catégorie n\'as pas pu être édité.')); } } - $categories = $this->SousCategories->Categories->find('list', ['limit' => 200]); + $categories = $this->SousCategories->Categories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']); + $this->set(compact('sousCategory', 'categories')); $this->set('_serialize', ['sousCategory']); } diff --git a/src/Controller/SuivisController.php b/src/Controller/SuivisController.php index dc24a84..787ef3e 100755 --- a/src/Controller/SuivisController.php +++ b/src/Controller/SuivisController.php @@ -2,6 +2,7 @@ namespace App\Controller; use App\Controller\AppController; +use Cake\ORM\TableRegistry; /** * Suivis Controller @@ -61,8 +62,13 @@ class SuivisController extends AppController $this->Flash->error(__('Le suivi n\'a pas pu être ajouté.')); } } - $materiels = $this->Suivis->Materiels->find('list', ['limit' => 200]); - $this->set(compact('suivi', 'materiels')); + $materiels = $this->Suivis->Materiels->find('list'); + + $numMateriel = $this->Suivis->Materiels->find()->select('numero_laboratoire')->where(['id =' => $this->passedArgs[0]])->first()['numero_laboratoire']; + + $typeSuivis = TableRegistry::get('TypeSuivis')->find('list', [ 'keyField' => 'nom', 'valueField' => 'nom']); + + $this->set(compact('suivi', 'materiels', 'typeSuivis', 'numMateriel')); $this->set('_serialize', ['suivi']); } @@ -87,8 +93,13 @@ class SuivisController extends AppController $this->Flash->error(__('Le suivi n\'a pas pu être édité.')); } } - $materiels = $this->Suivis->Materiels->find('list', ['limit' => 200]); - $this->set(compact('suivi', 'materiels')); + $materiels = $this->Suivis->Materiels->find('list'); + + $numMateriel = $this->Suivis->Materiels->find()->select('numero_laboratoire')->where(['id =' => $suivi->get('materiel_id')])->first()['numero_laboratoire']; + + $typeSuivis = TableRegistry::get('TypeSuivis')->find('list', [ 'keyField' => 'nom', 'valueField' => 'nom']); + + $this->set(compact('suivi', 'materiels', 'typeSuivis', 'numMateriel')); $this->set('_serialize', ['suivi']); } diff --git a/src/Controller/UsersController.php b/src/Controller/UsersController.php index 2ee716c..8e75eee 100755 --- a/src/Controller/UsersController.php +++ b/src/Controller/UsersController.php @@ -89,7 +89,8 @@ class UsersController extends AppController $this->Flash->error(__('L\utilisateur n\'a pas pu être ajouté.')); } } - $groupesMetiers = $this->Users->GroupesMetiers->find('list', ['limit' => 200]); + $groupesMetiers = $this->Users->GroupesMetiers->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']); + $this->set(compact('user', 'groupesMetiers')); $this->set('_serialize', ['user']); } @@ -115,7 +116,8 @@ class UsersController extends AppController $this->Flash->error(__('L\utilisateur n\'a pas pu être édité.')); } } - $groupesMetiers = $this->Users->GroupesMetiers->find('list', ['limit' => 200]); + $groupesMetiers = $this->Users->GroupesMetiers->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']); + $this->set(compact('user', 'groupesMetiers')); $this->set('_serialize', ['user']); } diff --git a/src/Model/Table/EmpruntsTable.php b/src/Model/Table/EmpruntsTable.php index 23b28cf..7d27224 100755 --- a/src/Model/Table/EmpruntsTable.php +++ b/src/Model/Table/EmpruntsTable.php @@ -50,46 +50,104 @@ class EmpruntsTable extends Table ->allowEmpty('id', 'create'); $validator - ->date('date_emprunt') ->allowEmpty('date_emprunt'); $validator - ->date('date_retour_emprunt') - ->allowEmpty('date_retour_emprunt'); + ->allowEmpty('date_retour_emprunt') + ->add('nom_emprunteur_ext', 'valid', ['rule' => ['checkReturnDateIsAfterLoanDate'], 'message' => 'La date de retour doit être postérieure à la date de l\'emprunt.', 'provider' => 'table']); $validator ->boolean('emprunt_interne') ->allowEmpty('emprunt_interne'); $validator - ->allowEmpty('laboratoire'); + ->allowEmpty('laboratoire') + ->add('laboratoire', 'valid', ['rule' => ['check_string'], 'message' => 'Le champ doit être valide.', 'provider' => 'table']) + ->add('laboratoire', 'valid', ['rule' => ['checkLaboratoire'], 'message' => 'Le champ doit être rempli pour un emprunt externe.', 'provider' => 'table']); + /* $validator - ->allowEmpty('e_lieu_stockage'); - - $validator - ->allowEmpty('e_lieu_detail'); - + ->notEmpty('e_lieu_stockage'); + */ + $validator - ->allowEmpty('nom_emprunteur'); - + ->allowEmpty('e_lieu_detail') + ->add('e_lieu_detail', 'valid', ['rule' => ['check_string'], 'message' => 'Le champ doit être valide.', 'provider' => 'table']) + ->add('e_lieu_detail', 'valid', ['rule' => ['checkLieu'], 'message' => 'Le champ doit être rempli pour un emprunt interne.', 'provider' => 'table']); + + /* $validator - ->allowEmpty('email_emprunteur'); - + ->notEmpty('nom_emprunteur_int'); + */ + $validator - ->allowEmpty('tel'); - + ->allowEmpty('email_emprunteur_int'); + $validator - ->allowEmpty('commentaire'); + ->allowEmpty('nom_emprunteur_ext') + ->add('nom_emprunteur_ext', 'valid', ['rule' => ['checkEmpruntExt'], 'message' => 'Le champ doit être rempli.', 'provider' => 'table']); $validator - ->allowEmpty('nom_createur'); - + ->allowEmpty('email_emprunteur_ext') + ->add('email_emprunteur_ext', 'valid', ['rule' => ['checkEmailExt'], 'message' => 'Cet Email n\'est pas valide.', 'provider' => 'table']); + $validator - ->allowEmpty('nom_modificateur'); - + ->allowEmpty('commentaire') + ->add('commentaire', 'valid', ['rule' => ['check_string_with_some_special_cars'], 'message' => 'Le champ doit être valide.', 'provider' => 'table']); + return $validator; } + + + // autoriser les caracteres habituels standards pour un ou plusieurs MOTs + // accents + - _ / () . , \s (=space) + private $string = "a-zA-Z0-9éèàùâêôîôûç%().,\/\s\+\-_"; + + public function check_string($check) { + return (bool) preg_match('/^['.$this->string.']*$/', $check); + } + + // autoriser les caracteres spéciaux (pour une PHRASE ou paragraphe) : + // check_string PLUS ces symboles ====> & * > < ? % ! : , " ' + public function check_string_with_some_special_cars($check) { + return (bool) preg_match('/^['.$this->string.'?%!:,&*><\-\+\="\''.']*$/', $check); + } + + function checkReturnDateIsAfterLoanDate() { + /* + $dateEmprunt = $this->data [$this->name] ['date_emprunt']; + $dateRetour = $this->data [$this->name] ['date_retour_emprunt']; + $dateEmprunt = explode("-", $dateEmprunt); + $dateRetour = explode("-", $dateRetour); + $dateEmprunt = $dateEmprunt[2].$dateEmprunt[1].$dateEmprunt[0]; + $dateRetour = $dateRetour[2].$dateRetour[1].$dateRetour[0]; + if ($dateEmprunt > $dateRetour) { + return false; + } + return true; + */ + return true; + } + + function checkEmprunt() { + //return ($this->data [$this->name] ['emprunt_interne'] == 1 || $this->data [$this->name] ['nom_emprunteur_ext'] != ''); + return true; + } + + function checkEmail() { + //return ($this->data [$this->name] ['emprunt_interne'] == 1 || Validation::email ( $this->data [$this->name] ['email_emprunteur_ext'] )); + return true; + } + + function checkLaboratoire() { + //return ((($this->data [$this->name] ['emprunt_interne'] == 0) && ($this->data [$this->name] ['laboratoire'] != '')) || ($this->data [$this->name] ['emprunt_interne'] == 1)); + return true; + } + + function checkLieu() { + //return ((($this->data [$this->name] ['emprunt_interne'] == 1) && ($this->data [$this->name] ['e_lieu_detail'] != '')) || ($this->data [$this->name] ['emprunt_interne'] == 0)); + return true; + } /** * Returns a rules checker object that will be used for validating diff --git a/src/Model/Table/MaterielsTable.php b/src/Model/Table/MaterielsTable.php index 0aa9f5b..3234992 100755 --- a/src/Model/Table/MaterielsTable.php +++ b/src/Model/Table/MaterielsTable.php @@ -24,6 +24,9 @@ use Cake\Validation\Validator; class MaterielsTable extends Table { + public $ALL_STATUS = array('CREATED', 'VALIDATED', 'TOBEARCHIVED', 'ARCHIVED'); + + /** * Initialize method * @@ -85,57 +88,74 @@ class MaterielsTable extends Table ->allowEmpty('id', 'create'); $validator - ->allowEmpty('designation'); + ->notEmpty('designation' ,'Ce champ doit être rempli') + ->add('designation', 'valid', ['rule' => 'check_string', 'message' => 'Ce champ contient des caractères interdits', 'provider' => 'table']); $validator + ->notEmpty('sur_categorie_id', 'Vous devez sélectionner une valeur'); + + $validator + ->notEmpty('categorie_id', 'Vous devez sélectionner une valeur'); + + $validator ->allowEmpty('numero_laboratoire') ->add('numero_laboratoire', 'unique', ['rule' => 'validateUnique', 'provider' => 'table']); $validator - ->allowEmpty('description'); + ->allowEmpty('description') + ->add('description', 'valid', ['rule' => 'check_string_with_some_special_cars', 'message' => 'Ce champ contient des caractères interdits', 'provider' => 'table']); $validator ->boolean('materiel_administratif') - ->allowEmpty('materiel_administratif'); + ->allowEmpty('materiel_administratif') + ->add('materiel_administratif', 'valid', ['rule' => 'checkAtLeastOneChecked', 'message' => 'Le matériel est obligatoirement inventoriable ou technique', 'provider' => 'table']) + ->add('materiel_administratif', 'mustbeadministratif', ['rule' => 'checkIfIsAdministratifWhenShouldBe', 'message' => 'Le matériel vaut plus de 800€ HT, il est donc obligatoirement inventoriable', 'provider' => 'table']) + ->add('materiel_administratif', 'canbeadministratif', ['rule' => 'checkIfIsNotAdministratifWhenShouldNotBe', 'message' => 'Le matériel vaut moins de 800€ HT, il n\'est donc pas inventoriable', 'provider' => 'table']); $validator ->boolean('materiel_technique') ->allowEmpty('materiel_technique'); $validator - ->allowEmpty('status'); - + ->add('status', 'valid', ['rule' => 'checkStatus', 'message' => 'Le statut doit prendre une des 4 valeurs CREATED, VALIDATED, TOBEARCHIVED, ou ARCHIVED', 'provider' => 'table']); + $validator - ->date('date_acquisition') - ->allowEmpty('date_acquisition'); - + ->notEmpty('date_acquisition', 'Ce champ doit être rempli'); + $validator - ->allowEmpty('fournisseur'); + ->allowEmpty('fournisseur') + ->add('fournisseur', 'valid', ['rule' => 'check_string', 'message' => 'Ce champ contient des caractères interdits', 'provider' => 'table']); $validator ->numeric('prix_ht') - ->allowEmpty('prix_ht'); + ->allowEmpty('prix_ht') + ->add('prix_ht', 'valid', ['rule' => 'check_string', 'message' => 'Ce champ contient des caractères interdits', 'provider' => 'table']); $validator - ->allowEmpty('eotp'); + ->allowEmpty('eotp') + ->add('eotp', 'valid', ['rule' => 'check_string', 'message' => 'Ce champ contient des caractères interdits', 'provider' => 'table']); $validator - ->allowEmpty('numero_commande'); - + ->allowEmpty('numero_commande') + ->add('numero_commande', 'valid', ['rule' => 'check_string', 'message' => 'Ce champ contient des caractères interdits', 'provider' => 'table']); + $validator - ->allowEmpty('code_comptable'); - + ->allowEmpty('code_comptable') + ->add('code_comptable', 'valid', ['rule' => 'check_string', 'message' => 'Ce champ contient des caractères interdits', 'provider' => 'table']); + $validator - ->allowEmpty('numero_serie'); - + ->allowEmpty('numero_serie') + ->add('numero_serie', 'valid', ['rule' => 'check_string', 'message' => 'Ce champ contient des caractères interdits', 'provider' => 'table']); + $validator - ->allowEmpty('numero_inventaire_organisme'); - + ->allowEmpty('numero_inventaire_organisme') + ->add('numero_inventaire_organisme', 'valid', ['rule' => 'check_string', 'message' => 'Ce champ contient des caractères interdits', 'provider' => 'table']); + $validator - ->allowEmpty('numero_inventaire_old'); - + ->allowEmpty('numero_inventaire_old') + ->add('numero_inventaire_old', 'valid', ['rule' => 'check_string', 'message' => 'Ce champ contient des caractères interdits', 'provider' => 'table']); + $validator - ->date('date_archivage') ->allowEmpty('date_archivage'); $validator @@ -146,14 +166,17 @@ class MaterielsTable extends Table ->allowEmpty('lieu_stockage'); $validator - ->allowEmpty('lieu_detail'); - + ->allowEmpty('lieu_detail') + ->add('lieu_detail', 'valid', ['rule' => 'check_string', 'message' => 'Ce champ contient des caractères interdits', 'provider' => 'table']); + $validator - ->allowEmpty('nom_responsable'); - + ->allowEmpty('nom_responsable') + ->add('nom_responsable', 'valid', ['rule' => 'check_string', 'message' => 'Ce champ contient des caractères interdits', 'provider' => 'table']); + $validator - ->allowEmpty('email_responsable'); - + ->allowEmpty('email_responsable') + ->email('email_responsable'); + $validator ->allowEmpty('nom_createur'); @@ -161,12 +184,50 @@ class MaterielsTable extends Table ->allowEmpty('nom_modificateur'); $validator - ->date('date_reception') ->allowEmpty('date_reception'); - return $validator; } + + // autoriser les caracteres habituels standards pour un ou plusieurs MOTs + // accents + - _ / () . , \s (=space) + private $string = "a-zA-Z0-9éèàùâêôîôûç%().,\/\s\+\-_"; + + public function check_string($check) { + return (bool) preg_match('/^['.$this->string.']*$/', $check); + } + + // autoriser les caracteres spéciaux (pour une PHRASE ou paragraphe) : + // check_string PLUS ces symboles ====> & * > < ? % ! : , " ' + public function check_string_with_some_special_cars($check) { + return (bool) preg_match('/^['.$this->string.'?%!:,&*><\-\+\="\''.']*$/', $check); + } + + public function checkStatus($check) { + return ( isset($check) && in_array($check, $this->ALL_STATUS) ); + } + + public function checkAtLeastOneChecked() { + //return ( 'materiel_administratif' || 'materiel_technique'); + return true; + } + + // return if price >=800€ then must be checked as "administratif" + public function checkIfIsAdministratifWhenShouldBe() { + //error_log('test : '.$this->materiel->prix_ht); + + //return ! ( isset($this->prix_ht) && $this->prix_ht >= 800 && !$this->materiel_administratif ); + return true; + } + + // return if price <800€ then must NOT be checked as "administratif" + public function checkIfIsNotAdministratifWhenShouldNotBe() { + //return ! ( isset($this->prix_ht) && $this->prix_ht < 800 && $this->materiel_administratif ); + return true; + } + + + /** * Returns a rules checker object that will be used for validating * application integrity. diff --git a/src/Model/Table/SuivisTable.php b/src/Model/Table/SuivisTable.php index 3543db8..faee0b4 100755 --- a/src/Model/Table/SuivisTable.php +++ b/src/Model/Table/SuivisTable.php @@ -49,40 +49,73 @@ class SuivisTable extends Table */ public function validationDefault(Validator $validator) { - $validator + $validator ->integer('id') ->allowEmpty('id', 'create'); - + $validator - ->date('date_controle') + ->integer('materiel_id'); + + $validator ->allowEmpty('date_controle'); $validator - ->date('date_prochain_controle') - ->allowEmpty('date_prochain_controle'); + ->allowEmpty('date_prochain_controle') + ->add('date_prochain_controle', 'checkNextDateControlIsAfterDateControl', ['rule' => 'checkNextDateControlIsAfterDateControl', 'message' => 'La date de la prochaine intervention dois être postérieure à la date de l\'intervention précédente.', 'provider' => 'table']); $validator - ->allowEmpty('type_intervention'); + ->allowEmpty('type_intervention') + ->add('type_intervention', 'valid', ['rule' => 'check_string', 'message' => 'Ce champ contient des caractères interdits', 'provider' => 'table']); $validator - ->allowEmpty('organisme'); + ->notEmpty('organisme') + ->add('organisme', 'valid', ['rule' => 'check_string', 'message' => 'Ce champ contient des caractères interdits', 'provider' => 'table']); $validator - ->integer('frequence') - ->allowEmpty('frequence'); - + ->numeric('frequence', 'Veuillez saisir des chiffres uniquement.') + ->allowEmpty('frequence') + ->maxLength('frequence', 8, '8 Chiffres maximum'); + $validator - ->allowEmpty('commentaire'); + ->allowEmpty('commentaire') + ->add('commentaire', 'valid', ['rule' => ['check_string_with_some_special_cars'], 'message' => 'Ce champ contient des caractères interdits', 'provider' => 'table']); - $validator - ->allowEmpty('nom_createur'); - - $validator - ->allowEmpty('nom_modificateur'); return $validator; } + + // autoriser les caracteres habituels standards pour un ou plusieurs MOTs + // accents + - _ / () . , \s (=space) + private $string = "a-zA-Z0-9éèàùâêôîôûç%().,\/\s\+\-_"; + + public function check_string($check) { + return (bool) preg_match('/^['.$this->string.']*$/', $check); + } + + // autoriser les caracteres spéciaux (pour une PHRASE ou paragraphe) : + // check_string PLUS ces symboles ====> & * > < ? % ! : , " ' + public function check_string_with_some_special_cars($check) { + return (bool) preg_match('/^['.$this->string.'?%!:,&*><\-\+\="\''.']*$/', $check); + } + + function checkNextDateControlIsAfterDateControl() { + /* + $controle = $this->data [$this->name] ['date_controle']; + if (empty($controle)) return true; + $prochainControle = $this->data [$this->name] ['date_prochain_controle']; + $controle = explode("-", $controle); + $prochainControle = explode("-", $prochainControle); + $controle = $controle[2].$controle[1].$controle[0]; + $prochainControle = $prochainControle[2].$prochainControle[1].$prochainControle[0]; + if ($controle > $prochainControle) { + return false; + } + return true; + */ + return true; + } + /** * Returns a rules checker object that will be used for validating * application integrity. diff --git a/src/Template/Categories/add.ctp b/src/Template/Categories/add.ctp index f672556..6971b52 100755 --- a/src/Template/Categories/add.ctp +++ b/src/Template/Categories/add.ctp @@ -5,7 +5,7 @@

Ajouter une Catégorie

Form->input('nom'); - echo $this->Form->input('sur_categorie_id', ['options' => $surCategories]); + echo $this->Form->input('sur_categorie_id', ['label' => 'Domaine', 'options' => $surCategories]); ?> Form->button(__('Valider')) ?> diff --git a/src/Template/Categories/edit.ctp b/src/Template/Categories/edit.ctp index 993b06d..73728d4 100755 --- a/src/Template/Categories/edit.ctp +++ b/src/Template/Categories/edit.ctp @@ -5,7 +5,7 @@

Editer une Catégorie

Form->input('nom'); - echo $this->Form->input('sur_categorie_id', ['options' => $surCategories]); + echo $this->Form->input('sur_categorie_id', ['label' => 'Domaine', 'options' => $surCategories]); ?> Form->button(__('Valider')) ?> diff --git a/src/Template/Categories/view.ctp b/src/Template/Categories/view.ctp index 5c87711..336ce4b 100755 --- a/src/Template/Categories/view.ctp +++ b/src/Template/Categories/view.ctp @@ -29,6 +29,33 @@ function displayElement($nom, $valeur) { ?> + + +

+ + Sous-Catégorie associé (non implémenter) +

+
+ + + + + + + + + + + + + + +
nom) ?> + Html->link(__(''), ['controller' => 'SousCategories', 'action' => 'view', $sous_category->id], ['escape' => false, 'style' => 'margin:0']) ?> +
+ +
+
diff --git a/src/Template/Emprunts/add.ctp b/src/Template/Emprunts/add.ctp index b5d6f6d..423d6df 100755 --- a/src/Template/Emprunts/add.ctp +++ b/src/Template/Emprunts/add.ctp @@ -1,24 +1,104 @@ -
+
Form->create($emprunt) ?>
- +

Ajouter un Emprunt

Form->input('materiel_id', ['options' => $materiels]); - echo $this->Form->input('date_emprunt', ['empty' => true]); - echo $this->Form->input('date_retour_emprunt', ['empty' => true]); - echo $this->Form->input('emprunt_interne'); - echo $this->Form->input('laboratoire'); - echo $this->Form->input('e_lieu_stockage'); - echo $this->Form->input('e_lieu_detail'); - echo $this->Form->input('nom_emprunteur'); - echo $this->Form->input('email_emprunteur'); - echo $this->Form->input('tel'); - echo $this->Form->input('commentaire'); - echo $this->Form->input('nom_createur'); - echo $this->Form->input('nom_modificateur'); + echo $this->Form->hidden('materiel_id', ['options' => $materiels, 'default' => $this->passedArgs[0]]); + + echo $this->Form->input ('materiel_numero_laboratoire', [ + 'label' => 'N° materiel labo', + 'default' => $numMateriel, + 'disabled' => TRUE + ]); + + echo $this->Form->input('date_emprunt', [ + 'type' => 'text', + 'label' => 'Date de l\'emprunt', + 'placeholder' => 'Cliquez pour selectionner une date', + 'class' => 'datepicker' + ]); + echo $this->Form->input('date_retour_emprunt', [ + 'type' => 'text', + 'label' => 'Date de retour', + 'placeholder' => 'Cliquez pour selectionner une date', + 'class' => 'datepicker' + ]); + echo $this->Form->input('emprunt_interne', [ + 'label' => 'Emprunt interne', + 'onchange' => 'emprunt_interne_externe();', + 'default' => true + ]); + + $ne = $emprunt->get('nom_emprunteur'); + if($emprunt->get('emprunt_interne') == 1 && isset($ne)) { + $nom_emprunteur_int = $emprunt->get('nom_emprunteur'); + $mail_emprunteur_int = $emprunt->get('email_emprunteur'); + } + if ($emprunt->get('emprunt_interne') == 0 && isset($ne)) { + $nom_emprunteur_ext = $emprunt->get('nom_emprunteur'); + $mail_emprunteur_ext = $emprunt->get('email_emprunteur'); + } + + // EMPRUNT INTERNE + echo '
'; + echo $this->Form->input ( 'nom_emprunteur_int', [ + 'options' => $utilisateurs, + 'readonly' => true, + 'default' => $nom_emprunteur_int, + 'div' => 'input required', + 'label' => 'Nom de l\'emprunteur' + ]); + + echo $this->Form->input ( 'email_emprunteur_int', [ + 'label' => 'Email de l\'emprunteur', + 'default' => $mail_emprunteur_int, + 'readonly' => true + ]); + + echo $this->Form->input('e_lieu_stockage', [ + 'label' => 'Site', + 'options' => $sites, + 'div' => 'input required', + 'style' => 'width: 100px' + ]); + echo $this->Form->input ( 'e_lieu_detail', ['label' => 'Pièce']); + echo '
'; + + + // EMPRUNT EXTERNE + echo '
'; + echo $this->Form->input ( 'nom_emprunteur_ext', [ + 'label' => 'Nom de l\'emprunteur', + 'default' => $nom_emprunteur_ext + ]); + + echo $this->Form->input ( 'email_emprunteur_ext', [ + 'label' => 'Email de l\'emprunteur', + 'default' => $mail_emprunteur_ext, + 'readonly' => false + ]); + echo $this->Form->input ( 'laboratoire', [ + 'label' => 'Lieu' + ]); + echo $this->Form->input ( 'tel', [ + 'label' => 'Tel' + ]); + echo '
'; + + echo $this->Form->input ('commentaire', ['type' => 'textarea']); + + + echo $this->Form->hidden('nom_createur', ['value' => $username]) ?>
- Form->button(__('Submit')) ?> + Form->button(__('Valider')) ?> Form->end() ?>
+ +
+ element('menu'); + echo $this->element('menu_form', [ 'pluralHumanName' => 'Emprunts' ]); + ?> +
\ No newline at end of file diff --git a/src/Template/Emprunts/edit.ctp b/src/Template/Emprunts/edit.ctp index 607d845..3f3d1ef 100755 --- a/src/Template/Emprunts/edit.ctp +++ b/src/Template/Emprunts/edit.ctp @@ -1,24 +1,104 @@ -
+
Form->create($emprunt) ?>
- +

Editer un Emprunt

Form->input('materiel_id', ['options' => $materiels]); - echo $this->Form->input('date_emprunt', ['empty' => true]); - echo $this->Form->input('date_retour_emprunt', ['empty' => true]); - echo $this->Form->input('emprunt_interne'); - echo $this->Form->input('laboratoire'); - echo $this->Form->input('e_lieu_stockage'); - echo $this->Form->input('e_lieu_detail'); - echo $this->Form->input('nom_emprunteur'); - echo $this->Form->input('email_emprunteur'); - echo $this->Form->input('tel'); - echo $this->Form->input('commentaire'); - echo $this->Form->input('nom_createur'); - echo $this->Form->input('nom_modificateur'); + echo $this->Form->hidden('materiel_id', ['options' => $materiels, 'default' => $emprunt->get('materiel_id')]); + + echo $this->Form->input ('materiel_numero_laboratoire', [ + 'label' => 'N° materiel labo', + 'default' => $numMateriel, + 'disabled' => TRUE + ]); + + echo $this->Form->input('date_emprunt', [ + 'type' => 'text', + 'label' => 'Date de l\'emprunt', + 'placeholder' => 'Cliquez pour selectionner une date', + 'class' => 'datepicker' + ]); + echo $this->Form->input('date_retour_emprunt', [ + 'type' => 'text', + 'label' => 'Date de retour', + 'placeholder' => 'Cliquez pour selectionner une date', + 'class' => 'datepicker' + ]); + echo $this->Form->input('emprunt_interne', [ + 'label' => 'Emprunt interne', + 'onchange' => 'emprunt_interne_externe();', + 'default' => true + ]); + + $ne = $emprunt->get('nom_emprunteur'); + if($emprunt->get('emprunt_interne') == 1 && isset($ne)) { + $nom_emprunteur_int = $emprunt->get('nom_emprunteur'); + $mail_emprunteur_int = $emprunt->get('email_emprunteur'); + } + if ($emprunt->get('emprunt_interne') == 0 && isset($ne)) { + $nom_emprunteur_ext = $emprunt->get('nom_emprunteur'); + $mail_emprunteur_ext = $emprunt->get('email_emprunteur'); + } + + // EMPRUNT INTERNE + echo '
'; + echo $this->Form->input ( 'nom_emprunteur_int', [ + 'options' => $utilisateurs, + 'readonly' => true, + 'default' => $nom_emprunteur_int, + 'div' => 'input required', + 'label' => 'Nom de l\'emprunteur' + ]); + + echo $this->Form->input ( 'email_emprunteur_int', [ + 'label' => 'Email de l\'emprunteur', + 'default' => $mail_emprunteur_int, + 'readonly' => true + ]); + + echo $this->Form->input('e_lieu_stockage', [ + 'label' => 'Site', + 'options' => $sites, + 'div' => 'input required', + 'style' => 'width: 100px' + ]); + echo $this->Form->input ( 'e_lieu_detail', ['label' => 'Pièce']); + echo '
'; + + + // EMPRUNT EXTERNE + echo '
'; + echo $this->Form->input ( 'nom_emprunteur_ext', [ + 'label' => 'Nom de l\'emprunteur', + 'default' => $nom_emprunteur_ext + ]); + + echo $this->Form->input ( 'email_emprunteur_ext', [ + 'label' => 'Email de l\'emprunteur', + 'default' => $mail_emprunteur_ext, + 'readonly' => false + ]); + echo $this->Form->input ( 'laboratoire', [ + 'label' => 'Lieu' + ]); + echo $this->Form->input ( 'tel', [ + 'label' => 'Tel' + ]); + echo '
'; + + echo $this->Form->input ('commentaire', ['type' => 'textarea']); + + + echo $this->Form->hidden('nom_modificateur', ['value' => $username]); ?>
- Form->button(__('Submit')) ?> + Form->button(__('Valider')) ?> Form->end() ?>
+ +
+ element('menu'); + echo $this->element('menu_form', [ 'pluralHumanName' => 'Emprunts' ]); + ?> +
\ No newline at end of file diff --git a/src/Template/Emprunts/index.ctp b/src/Template/Emprunts/index.ctp index 1f88823..2d47f96 100755 --- a/src/Template/Emprunts/index.ctp +++ b/src/Template/Emprunts/index.ctp @@ -50,7 +50,4 @@
element('menu') ?> - element('menu_index', - [ 'pluralHumanName' => 'Emprunts', - 'singularHumanName' => 'Emprunt' ]) ?>
\ No newline at end of file diff --git a/src/Template/Layout/default.ctp b/src/Template/Layout/default.ctp index 22e686e..3d91ab5 100755 --- a/src/Template/Layout/default.ctp +++ b/src/Template/Layout/default.ctp @@ -46,9 +46,8 @@ $cakeDescription = 'Labinvent 2.0'; '; + if (isset($username)) { + echo 'Bienvenue '.$username.'
'; echo $this->Html->link('Se déconnecter', ['controller' => 'Users', 'action' => 'logout']); } else { @@ -93,7 +92,7 @@ $cakeDescription = 'Labinvent 2.0'; - VERSION 2.0.0 (22/04/2016) + VERSION 2.0.2 (06/05/2016) diff --git a/src/Template/Materiels/add.ctp b/src/Template/Materiels/add.ctp index 1020f4f..ccad05b 100755 --- a/src/Template/Materiels/add.ctp +++ b/src/Template/Materiels/add.ctp @@ -1,41 +1,66 @@ -
+ +
Form->create($materiel) ?>
- +

Ajouter un Matériel

+ Form->button(__('Enregistrer')) ?> + Form->input('designation'); - echo $this->Form->input('sur_categorie_id', ['options' => $surCategories, 'empty' => true]); - echo $this->Form->input('categorie_id', ['options' => $categories, 'empty' => true]); - echo $this->Form->input('sous_categorie_id', ['options' => $sousCategories, 'empty' => true]); - echo $this->Form->input('numero_laboratoire'); - echo $this->Form->input('description'); - echo $this->Form->input('materiel_administratif'); - echo $this->Form->input('materiel_technique'); - echo $this->Form->input('status'); - echo $this->Form->input('date_acquisition', ['empty' => true]); - echo $this->Form->input('fournisseur'); - echo $this->Form->input('prix_ht'); - echo $this->Form->input('eotp'); - echo $this->Form->input('numero_commande'); - echo $this->Form->input('code_comptable'); - echo $this->Form->input('numero_serie'); - echo $this->Form->input('groupes_thematique_id', ['options' => $groupesThematiques, 'empty' => true]); - echo $this->Form->input('groupes_metier_id', ['options' => $groupesMetiers, 'empty' => true]); - echo $this->Form->input('numero_inventaire_organisme'); - echo $this->Form->input('numero_inventaire_old'); - echo $this->Form->input('date_archivage', ['empty' => true]); - echo $this->Form->input('etiquette'); - echo $this->Form->input('lieu_stockage'); - echo $this->Form->input('lieu_detail'); - echo $this->Form->input('nom_responsable'); - echo $this->Form->input('email_responsable'); - echo $this->Form->input('nom_createur'); - echo $this->Form->input('nom_modificateur'); - echo $this->Form->input('date_reception', ['empty' => true]); - echo $this->Form->input('organisme_id', ['options' => $organismes, 'empty' => true]); - echo $this->Form->input('site_id', ['options' => $sites, 'empty' => true]); + echo $this->Form->input('designation', ['label' => 'Désignation']); + echo $this->Form->input('sur_categorie_id', ['label' => 'Domaine', 'options' => $surCategories, 'empty' => 'Choisir un domaine']); + echo $this->Form->input('categorie_id', ['label' => 'Catégorie', 'options' => $categories, 'empty' => 'Choisir une catégorie']); + echo $this->Form->input('sous_categorie_id', ['label' => 'Sous-catégorie', 'options' => $sousCategories, 'empty' => 'Choisir une sous-catégorie']); + + echo $this->Form->input('materiel_technique', ['label' => 'Technique']); + echo $this->Form->input('materiel_administratif', ['label' => 'Inventoriable (>800€)']); + + echo $this->Form->input('description', ['label' => 'Description']); + echo $this->Form->input('etiquette', ['label' => 'Etiquette posée']); + echo $this->Form->input('site_id', ['options' => $sites, 'empty' => 'Choisir un site']); + + echo $this->Form->input('lieu_stockage', ['label' => 'Lieu de stockage (pièce)']); + echo $this->Form->input('lieu_detail', ['label' => 'Détail lieu de stockage']); + + echo $this->Form->input('date_acquisition', ['type' => 'text', 'label' => 'Date de la commande', 'class' => 'datepicker', 'placeholder' => 'Cliquez pour sélectionner une date']); + echo $this->Form->input('date_reception', ['type' => 'text', 'label' => 'Date de réception', 'class' => 'datepicker', 'placeholder' => 'A éditer lors de la réception uniquement.', 'empty' => true]); + + echo $this->Form->input('numero_serie', ['label' => 'Numéro de série']); + echo $this->Form->input('groupes_thematique_id', ['label' => 'Groupe thématique', 'options' => $groupesThematiques]); + echo $this->Form->input('groupes_metier_id', ['label' => 'Groupe métier', 'options' => $groupesMetiers]); + + echo $this->Form->input('nom_responsable', [ + 'label' => 'Nom du responsable', + 'empty' => 'Choisir un utilisateur', + 'default' => $username, + 'options' => $utilisateurs + ]); + echo $this->Form->input('email_responsable', [ + 'label' => 'Email du responsable', + 'readonly' => true, + 'default' => $mail_responsable + ]); + echo $this->Form->input('fournisseur', ['label' => 'Fournisseur']); + echo $this->Form->input('organisme_id', ['options' => $organismes, 'empty' => 'Choisir un organisme']); + echo $this->Form->input('prix_ht', ['label' => 'Prix HT (€)']); + + echo '
Partie administrative'; + echo $this->Form->input('eotp', ['label' => 'Centre financier/EOTP']); + echo $this->Form->input('numero_commande', ['label' => 'Numéro de commande']); + echo $this->Form->input('code_comptable', ['label' => 'Code comptable']); + echo $this->Form->input('numero_inventaire_organisme', ['label' => 'N° inventaire organisme']); + echo $this->Form->input('numero_inventaire_old', ['label' => 'Ancien N° inventaire']); + echo $this->Form->hidden('nom_createur', ['value' => $username ]); + echo '
'; + ?>
- Form->button(__('Submit')) ?> + Form->button(__('Enregistrer')) ?> Form->end() ?>
+ +
+ element('menu'); + echo $this->element('menu_form', [ 'pluralHumanName' => 'Matériels' ]); + ?> +
\ No newline at end of file diff --git a/src/Template/Materiels/edit.ctp b/src/Template/Materiels/edit.ctp index c5f4c74..9e82acf 100755 --- a/src/Template/Materiels/edit.ctp +++ b/src/Template/Materiels/edit.ctp @@ -1,41 +1,218 @@ -
+status == 'CREATED' ); +define ( 'IS_VALIDATED', $materiel->status == 'VALIDATED' ); +define ( 'IS_ARCHIVED_OR_TOBE', in_array ( $materiel->status, ['TOBEARCHIVED','ARCHIVED'] ) ); + +function isReadonlyField($fieldName, $myReadonlyFields) { + if (! empty ( $myReadonlyFields ) && $myReadonlyFields [0] == '*') { + $modifiableFields = $myReadonlyFields; + array_shift ( $modifiableFields ); + return ! in_array ( $fieldName, $modifiableFields ); + } + return in_array ( $fieldName, $myReadonlyFields ); +} + +$administrationData = array ( + 'eotp', + 'numero_commande', + 'code_comptable', + 'numero_inventaire_organisme', + 'numero_inventaire_old' +); + +$myReadonlyFields = array (); +if (IS_VALIDATED) + // can only modify some fields + $myReadonlyFields = array_merge ( + array ( + 'sur_categorie_id', + 'categorie_id', + 'sous_categorie_id', + 'materiel_administratif', + 'materiel_technique', + 'site_id', + 'date_acquisition', + 'date_reception', + 'nom_responsable', + 'fournisseur', + 'organisme_id', + 'prix_ht' + ), + $administrationData + ); + + elseif (IS_ARCHIVED_OR_TOBE) { + $myReadonlyFields = array ('*','status'); + } +?> + + + +
Form->create($materiel) ?>
- +

Editer un Matériel

+ Form->button(__('Enregistrer')) ?> + Form->input('designation'); - echo $this->Form->input('sur_categorie_id', ['options' => $surCategories, 'empty' => true]); - echo $this->Form->input('categorie_id', ['options' => $categories, 'empty' => true]); - echo $this->Form->input('sous_categorie_id', ['options' => $sousCategories, 'empty' => true]); - echo $this->Form->input('numero_laboratoire'); - echo $this->Form->input('description'); - echo $this->Form->input('materiel_administratif'); - echo $this->Form->input('materiel_technique'); - echo $this->Form->input('status'); - echo $this->Form->input('date_acquisition', ['empty' => true]); - echo $this->Form->input('fournisseur'); - echo $this->Form->input('prix_ht'); - echo $this->Form->input('eotp'); - echo $this->Form->input('numero_commande'); - echo $this->Form->input('code_comptable'); - echo $this->Form->input('numero_serie'); - echo $this->Form->input('groupes_thematique_id', ['options' => $groupesThematiques, 'empty' => true]); - echo $this->Form->input('groupes_metier_id', ['options' => $groupesMetiers, 'empty' => true]); - echo $this->Form->input('numero_inventaire_organisme'); - echo $this->Form->input('numero_inventaire_old'); - echo $this->Form->input('date_archivage', ['empty' => true]); - echo $this->Form->input('etiquette'); - echo $this->Form->input('lieu_stockage'); - echo $this->Form->input('lieu_detail'); - echo $this->Form->input('nom_responsable'); - echo $this->Form->input('email_responsable'); - echo $this->Form->input('nom_createur'); - echo $this->Form->input('nom_modificateur'); - echo $this->Form->input('date_reception', ['empty' => true]); - echo $this->Form->input('organisme_id', ['options' => $organismes, 'empty' => true]); - echo $this->Form->input('site_id', ['options' => $sites, 'empty' => true]); + echo $this->Form->input('designation', [ + 'label' => 'Désignation', + 'disabled' => isReadonlyField('designation', $myReadonlyFields) + + ]); + + echo $this->Form->input('sur_categorie_id', [ + 'label' => 'Domaine', + 'options' => $surCategories, + 'empty' => 'Choisir un domaine', + 'readonly' => isReadonlyField ( 'sur_categorie_id', $myReadonlyFields ), + 'disabled' => isReadonlyField ( 'sur_categorie_id', $myReadonlyFields ) + + ]); + echo $this->Form->input('categorie_id', [ + 'label' => 'Catégorie', + 'options' => $categories, + 'empty' => 'Choisir une catégorie', + 'disabled' => isReadonlyField('categorie_id', $myReadonlyFields) + ]); + echo $this->Form->input('sous_categorie_id', [ + 'label' => 'Sous-catégorie', + 'options' => $sousCategories, + 'empty' => 'Choisir une sous-catégorie', + 'disabled' => isReadonlyField('sous_categorie_id', $myReadonlyFields) + ]); + + echo $this->Form->input('materiel_technique', [ + 'label' => 'Technique', + 'disabled' => isReadonlyField('materiel_technique', $myReadonlyFields) + ]); + echo $this->Form->input('materiel_administratif', [ + 'label' => 'Inventoriable (>800€)', + 'disabled' => isReadonlyField('materiel_administratif', $myReadonlyFields) + ]); + + echo $this->Form->input('description', [ + 'label' => 'Description', + 'disabled' => isReadonlyField('description', $myReadonlyFields) + ]); + echo $this->Form->input('etiquette', [ + 'label' => 'Etiquette posée', + 'disabled' => isReadonlyField('etiquette', $myReadonlyFields) + ]); + echo $this->Form->input('site_id', [ + 'options' => $sites, + 'empty' => 'Choisir un site', + 'disabled' => isReadonlyField('site_id', $myReadonlyFields) + ]); + + echo $this->Form->input('lieu_stockage', ['label' => 'Lieu de stockage (pièce)']); + echo $this->Form->input('lieu_detail', ['label' => 'Détail lieu de stockage']); + + echo $this->Form->input('date_acquisition', [ + 'type' => 'text', + 'label' => 'Date de la commande', + 'class' => 'datepicker', + 'placeholder' => 'Cliquez pour sélectionner une date', + 'disabled' => isReadonlyField('date_acquisition', $myReadonlyFields), + ]); + echo $this->Form->input('date_reception', [ + 'type' => 'text', + 'label' => 'Date de réception', + 'class' => 'datepicker', + 'placeholder' => 'A éditer lors de la réception uniquement.', + 'disabled' => isReadonlyField('date_reception', $myReadonlyFields), + 'empty' => true]); + + echo $this->Form->input('status', ['label' => 'Statut', 'options' => [ + 'CREATED' => 'CREATED', + 'VALIDATED' => 'VALIDATED', + 'TOBEARCHIVED' => 'TOBEARCHIVED', + 'ARCHIVED' => 'ARCHIVED']]); + + echo $this->Form->input('numero_serie', [ + 'label' => 'Numéro de série', + 'disabled' => isReadonlyField('numero_serie', $myReadonlyFields) + ]); + echo $this->Form->input('groupes_thematique_id', [ + 'label' => 'Groupe thématique', + 'disabled' => isReadonlyField('groupes_thematique_id', $myReadonlyFields), + 'options' => $groupesThematiques]); + echo $this->Form->input('groupes_metier_id', [ + 'label' => 'Groupe métier', + 'disabled' => isReadonlyField('groupes_metier_id', $myReadonlyFields), + 'options' => $groupesMetiers]); + + + echo $this->Form->input('nom_responsable', [ + 'label' => 'Nom du responsable', + 'disabled' => isReadonlyField('nom_responsable', $myReadonlyFields), + 'empty' => 'Choisir un utilisateur', + 'default' => $username, + 'options' => $utilisateurs + ]); + if(isset($nom_ancien_responsable)){ + echo $this->Form->input ('nom_ancien_responsable', [ + 'label' => 'Nom ancien responsable', + 'readonly' => true, + 'default' => $nom_ancien_responsable + ]); + } + echo $this->Form->input('email_responsable', [ + 'label' => 'Email du responsable', + 'readonly' => true, + 'default' => $mail_responsable + ]); + + + echo $this->Form->input('fournisseur', [ + 'label' => 'Fournisseur', + 'disabled' => isReadonlyField('email_responsable', $myReadonlyFields) + ]); + echo $this->Form->input('organisme_id', [ + 'options' => $organismes, + 'disabled' => isReadonlyField('organisme_id', $myReadonlyFields), + 'empty' => 'Choisir un organisme' + ]); + echo $this->Form->input('prix_ht', [ + 'label' => 'Prix HT (€)', + 'disabled' => isReadonlyField('prix_ht', $myReadonlyFields) + ]); + + + echo '
Partie administrative'; + echo $this->Form->input('eotp', [ + 'label' => 'Centre financier/EOTP', + 'disabled' => isReadonlyField('eotp', $myReadonlyFields) + ]); + echo $this->Form->input('numero_commande', [ + 'label' => 'Numéro de commande', + 'disabled' => isReadonlyField('numero_commande', $myReadonlyFields) + ]); + echo $this->Form->input('code_comptable', [ + 'label' => 'Code comptable', + 'disabled' => isReadonlyField('code_comptable', $myReadonlyFields) + ]); + echo $this->Form->input('numero_inventaire_organisme', [ + 'label' => 'N° inventaire organisme', + 'disabled' => isReadonlyField('numero_inventaire_organisme', $myReadonlyFields) + ]); + echo $this->Form->input('numero_inventaire_old', [ + 'label' => 'Ancien N° inventaire', + 'disabled' => isReadonlyField('numero_inventaire_old', $myReadonlyFields) + ]); + echo $this->Form->hidden('nom_modificateur', ['value' => $username ]); + echo '
'; + ?>
- Form->button(__('Submit')) ?> + Form->button(__('Enregistrer')) ?> Form->end() ?>
+ +
+ element('menu'); + echo $this->element('menu_form', [ 'pluralHumanName' => 'Matériels' ]); + ?> +
+ diff --git a/src/Template/Materiels/view.ctp b/src/Template/Materiels/view.ctp index 8d8fd3d..418dd60 100755 --- a/src/Template/Materiels/view.ctp +++ b/src/Template/Materiels/view.ctp @@ -20,8 +20,33 @@ function displayElement($nom, $valeur) { Html->link(__(' Editer ce matériel'), ['action' => 'edit', $materiel->id], - ['escape' => false,'onclick' => 'return true;'] - ); + ['escape' => false, + 'onclick' => 'return true;', + 'style' => 'margin-right: 10px' + ]); + + if($materiel->status == 'VALIDATED') { + // BOUTON NOUVEAU SUIVI + echo $this->Html->link(' Nouv. Suivi', + ['controller' => 'suivis', + 'action' => 'add', + $materiel->id], + ['title' => 'Faire un nouveau suivi de ce matériel', + 'style' => 'margin-right: 10px', + 'escape' => false] + ); // End link + + // BOUTON NOUVEL EMPRUNT + echo $this->Html->link(' Nouv. Emprunt', + ['controller' => 'emprunts', + 'action' => 'add', + $materiel->id], + ['title' => 'Faire un nouvel emprunt de ce matériel', + 'style' => 'margin-right: 10px', + 'escape' => false] + ); // End link + } + ?>
diff --git a/src/Template/Pages/home.ctp b/src/Template/Pages/home.ctp index 46eea6b..d70fdf6 100755 --- a/src/Template/Pages/home.ctp +++ b/src/Template/Pages/home.ctp @@ -3,8 +3,8 @@ use Cake\Core\Configure; //if (Configure::read('debug')) { -if ($this->request->session()->read('debug')) { - include("home_debug.ctp"); +if ($this->request->session()->read('install')) { + include("home_install.ctp"); } else { include("home_app.ctp"); diff --git a/src/Template/Pages/home_app.ctp b/src/Template/Pages/home_app.ctp index eaada1f..5d9484e 100755 --- a/src/Template/Pages/home_app.ctp +++ b/src/Template/Pages/home_app.ctp @@ -5,19 +5,10 @@

Bienvenue sur l'inventaire administratif et technique de l'IRAP.

-

Vous n'êtes pas connecté, veuillez vous authentifier.

- - Vous êtes connecté en tant que ' . $userName . ' '; + echo '

Vous êtes connecté en tant que ' . $username . ' '; echo 'et avec le niveau d\'authentification inconnu sans les ACL en place, bientôt...'; echo '

'; - } ?>

diff --git a/src/Template/Pages/home_debug.ctp b/src/Template/Pages/home_debug.ctp deleted file mode 100755 index a8cb934..0000000 --- a/src/Template/Pages/home_debug.ctp +++ /dev/null @@ -1,150 +0,0 @@ -layout = false; - -?> - - - - Html->charset() ?> - - HOME_DEBUG - Html->meta('icon') ?> - Html->css('base.css') ?> - Html->css('cake.css') ?> - - -
-
- Html->image('http://cakephp.org/img/cake-logo.png') ?> -

Configuring your Labinvent

-
-
-
-
-
- Form->postLink("Stop Debug mode", ['controller' => 'materiels', 'action'=>'debugOff'], ['confirm' => __('Êtes-vous sur ?')]); ?> -
- -
-

URL rewriting is not properly configured on your server.

-

- 1) Help me configure it -

-

- 2) I don't / can't use URL rewriting -

-
- -
-

Environment

- =')): ?> -

Your version of PHP is 5.5.9 or higher.

- -

Your version of PHP is too low. You need PHP 5.5.9 or higher to use CakePHP.

- - - -

Your version of PHP has the mbstring extension loaded.

- -

Your version of PHP does NOT have the mbstring extension loaded.

; - - - -

Your version of PHP has the openssl extension loaded.

- -

Your version of PHP has the mcrypt extension loaded.

- -

Your version of PHP does NOT have the openssl or mcrypt extension loaded.

- - - -

Your version of PHP has the intl extension loaded.

- -

Your version of PHP does NOT have the intl extension loaded.

- - - -

Your version of PHP has the gd extension loaded.

- -

Your version of PHP does NOT have the gd extension loaded.

- - - -

Your version of PHP has the zlib extension loaded.

- -

Your version of PHP does NOT have the zlib extension loaded.

- -
- -

Filesystem

- -

Your tmp directory is writable.

- -

Your tmp directory is NOT writable.

- - - -

Your logs directory is writable.

- -

Your logs directory is NOT writable.

- - - - -

The Engine is being used for core caching. To change the config edit config/app.php

- -

Your cache is NOT working. Please check the settings in config/app.php

- - -
-

Database

- connect(); - } catch (Exception $connectionError) { - $connected = false; - $errorMsg = $connectionError->getMessage(); - if (method_exists($connectionError, 'getAttributes')): - $attributes = $connectionError->getAttributes(); - if (isset($errorMsg['message'])): - $errorMsg .= '
' . $attributes['message']; - endif; - endif; - } - ?> - -

CakePHP is able to connect to the database.

- -

CakePHP is NOT able to connect to the database.

- -
- -

Others informations

-

Application Name :

-
-
- -
- -
- - diff --git a/src/Template/Pages/home_install.ctp b/src/Template/Pages/home_install.ctp new file mode 100755 index 0000000..b2777a8 --- /dev/null +++ b/src/Template/Pages/home_install.ctp @@ -0,0 +1,150 @@ +layout = false; + +?> + + + + Html->charset() ?> + + Mode install + Html->meta('icon') ?> + Html->css('base.css') ?> + Html->css('cake.css') ?> + + +
+
+ Html->image('http://cakephp.org/img/cake-logo.png') ?> +

Configuring your Labinvent

+
+
+
+
+
+ Form->postLink("Stop Install mode", ['controller' => 'materiels', 'action'=>'installOff'], ['confirm' => __('Êtes-vous sur ?')]); ?> +
+ +
+

URL rewriting is not properly configured on your server.

+

+ 1) Help me configure it +

+

+ 2) I don't / can't use URL rewriting +

+
+ +
+

Environment

+ =')): ?> +

Your version of PHP is 5.5.9 or higher.

+ +

Your version of PHP is too low. You need PHP 5.5.9 or higher to use CakePHP.

+ + + +

Your version of PHP has the mbstring extension loaded.

+ +

Your version of PHP does NOT have the mbstring extension loaded.

; + + + +

Your version of PHP has the openssl extension loaded.

+ +

Your version of PHP has the mcrypt extension loaded.

+ +

Your version of PHP does NOT have the openssl or mcrypt extension loaded.

+ + + +

Your version of PHP has the intl extension loaded.

+ +

Your version of PHP does NOT have the intl extension loaded.

+ + + +

Your version of PHP has the gd extension loaded.

+ +

Your version of PHP does NOT have the gd extension loaded.

+ + + +

Your version of PHP has the zlib extension loaded.

+ +

Your version of PHP does NOT have the zlib extension loaded.

+ +
+ +

Filesystem

+ +

Your tmp directory is writable.

+ +

Your tmp directory is NOT writable.

+ + + +

Your logs directory is writable.

+ +

Your logs directory is NOT writable.

+ + + + +

The Engine is being used for core caching. To change the config edit config/app.php

+ +

Your cache is NOT working. Please check the settings in config/app.php

+ + +
+

Database

+ connect(); + } catch (Exception $connectionError) { + $connected = false; + $errorMsg = $connectionError->getMessage(); + if (method_exists($connectionError, 'getAttributes')): + $attributes = $connectionError->getAttributes(); + if (isset($errorMsg['message'])): + $errorMsg .= '
' . $attributes['message']; + endif; + endif; + } + ?> + +

CakePHP is able to connect to the database.

+ +

CakePHP is NOT able to connect to the database.

+ +
+ +

Others informations

+

Application Name :

+
+
+ +
+ +
+ + diff --git a/src/Template/Pages/tools.ctp b/src/Template/Pages/tools.ctp index 0139ba2..1d99c24 100755 --- a/src/Template/Pages/tools.ctp +++ b/src/Template/Pages/tools.ctp @@ -49,10 +49,6 @@ echo ''; echo $this->Html->link('Gérer les groupes métiers', ['controller' => 'groupes_metiers', 'sort' => 'nom']); echo ''; - - echo ''; - echo $this->Html->link('Gérer les fichiers', ['controller' => 'documents', 'sort' => 'nom']); - echo ''; echo ''; echo $this->Html->link('Export de la liste des materiels actifs (format CSV)', ['controller' => 'materiels', 'action' => 'export']); @@ -66,11 +62,11 @@ * Mode debug */ echo ''; - if ($this->request->session()->read('debug')) { - echo $this->Form->postLink("Stopper le mode DEBUG", ['controller' => 'materiels', 'action'=>'debugOff'], ['confirm' => __('Êtes-vous sur ?')]); + if ($this->request->session()->read('install')) { + echo $this->Form->postLink("Stopper le mode INSTALL", ['controller' => 'materiels', 'action'=>'installOff'], ['confirm' => __('Êtes-vous sur ?')]); } else { - echo $this->Form->postLink("Passer en mode DEBUG", ['controller' => 'materiels', 'action'=>'debugOn'], ['confirm' => __('Êtes-vous sur ?')]); + echo $this->Form->postLink("Passer en mode INSTALL", ['controller' => 'materiels', 'action'=>'installOn'], ['confirm' => __('Êtes-vous sur ?')]); } echo ''; diff --git a/src/Template/SousCategories/add.ctp b/src/Template/SousCategories/add.ctp index d366c5b..4b2fdbe 100755 --- a/src/Template/SousCategories/add.ctp +++ b/src/Template/SousCategories/add.ctp @@ -5,7 +5,7 @@

Ajouter une Sous-catégorie

Form->input('nom'); - echo $this->Form->input('categorie_id', ['options' => $categories]); + echo $this->Form->input('categorie_id', ['label' => 'Catégorie', 'options' => $categories]); ?> Form->button(__('Valider')) ?> diff --git a/src/Template/SousCategories/edit.ctp b/src/Template/SousCategories/edit.ctp index 72c3ecd..557c319 100755 --- a/src/Template/SousCategories/edit.ctp +++ b/src/Template/SousCategories/edit.ctp @@ -5,7 +5,7 @@

Editer une Sous-catégorie

Form->input('nom'); - echo $this->Form->input('categorie_id', ['options' => $categories]); + echo $this->Form->input('categorie_id', ['label' => 'Catégorie', 'options' => $categories]); ?> Form->button(__('Valider')) ?> diff --git a/src/Template/Suivis/add.ctp b/src/Template/Suivis/add.ctp index 29bb958..399ca3e 100755 --- a/src/Template/Suivis/add.ctp +++ b/src/Template/Suivis/add.ctp @@ -1,20 +1,65 @@ -
+
Form->create($suivi) ?>
- +

Ajouter un suivi

Form->input('materiel_id', ['options' => $materiels]); - echo $this->Form->input('date_controle', ['empty' => true]); - echo $this->Form->input('date_prochain_controle', ['empty' => true]); - echo $this->Form->input('type_intervention'); - echo $this->Form->input('organisme'); - echo $this->Form->input('frequence'); - echo $this->Form->input('commentaire'); - echo $this->Form->input('nom_createur'); - echo $this->Form->input('nom_modificateur'); + echo $this->Form->hidden('materiel_id', ['options' => $materiels, 'default' => $this->passedArgs[0]]); + + echo $this->Form->input ('materiel_numero_laboratoire', [ + 'label' => 'N° materiel labo', + 'default' => $numMateriel, + 'disabled' => TRUE + ]); + + + echo $this->Form->input('type_intervention', [ + 'label' => 'Type d\'intervention', + 'options' => $typeSuivis + ]); + + echo $this->Form->input('date_controle', [ + 'type' => 'text', + 'label' => 'Date intervention', + 'placeholder' => 'Cliquez pour selectionner une date', + 'class' => 'datepicker', + 'default' => NULL + ]); + + echo '
'; + echo $this->Form->input('frequence', [ + 'div' => 'A', + 'type' => 'text', + 'label' => 'Fréquence', + 'placeholder' => '' + ]); + echo ''; + echo $this->Form->input ('type_frequence', [ + 'label' => false, + 'div' => 'typeFrequence', + 'options' => ['/ Jours', '/ Semaines', '/ Mois', '/ Ans'] + ]); + echo '
'; + + echo $this->Form->input('date_prochain_controle', [ + 'type' => 'text', + 'label' => 'Date prochaine intervention', + 'placeholder' => 'Cliquez pour selectionner une date', + 'class' => 'datepicker' + ]); + echo $this->Form->input('organisme', ['label' => 'Prestataire']); + echo $this->Form->input('commentaire', ['type' => 'textarea']); + + echo $this->Form->hidden('nom_createur', ['value' => $username ]); ?>
- Form->button(__('Submit')) ?> + Form->button(__('Valider')) ?> Form->end() ?>
+ +
+ element('menu'); + echo $this->element('menu_form', [ 'pluralHumanName' => 'Suivis' ]); + ?> +
\ No newline at end of file diff --git a/src/Template/Suivis/edit.ctp b/src/Template/Suivis/edit.ctp index 1d8d52b..ea61c97 100755 --- a/src/Template/Suivis/edit.ctp +++ b/src/Template/Suivis/edit.ctp @@ -1,20 +1,65 @@ -
+
Form->create($suivi) ?>
- +

Editer un suivi

Form->input('materiel_id', ['options' => $materiels]); - echo $this->Form->input('date_controle', ['empty' => true]); - echo $this->Form->input('date_prochain_controle', ['empty' => true]); - echo $this->Form->input('type_intervention'); - echo $this->Form->input('organisme'); - echo $this->Form->input('frequence'); - echo $this->Form->input('commentaire'); - echo $this->Form->input('nom_createur'); - echo $this->Form->input('nom_modificateur'); + + echo $this->Form->hidden('materiel_id', ['options' => $materiels, 'default' => $suivi->get('materiel_id')]); + + echo $this->Form->input ('materiel_numero_laboratoire', [ + 'label' => 'N° materiel labo', + 'default' => $numMateriel, + 'disabled' => TRUE + ]); + + echo $this->Form->input('type_intervention', [ + 'label' => 'Type d\'intervention', + 'options' => $typeSuivis + ]); + + echo $this->Form->input('date_controle', [ + 'type' => 'text', + 'label' => 'Date intervention', + 'placeholder' => 'Cliquez pour selectionner une date', + 'class' => 'datepicker', + 'default' => NULL + ]); + + echo '
'; + echo $this->Form->input('frequence', [ + 'div' => 'A', + 'type' => 'text', + 'label' => 'Fréquence', + 'placeholder' => '' + ]); + echo ''; + echo $this->Form->input ('type_frequence', [ + 'label' => false, + 'div' => 'typeFrequence', + 'options' => ['/ Jours', '/ Semaines', '/ Mois', '/ Ans'] + ]); + echo '
'; + + echo $this->Form->input('date_prochain_controle', [ + 'type' => 'text', + 'label' => 'Date prochaine intervention', + 'placeholder' => 'Cliquez pour selectionner une date', + 'class' => 'datepicker' + ]); + echo $this->Form->input('organisme', ['label' => 'Prestataire']); + echo $this->Form->input('commentaire', ['type' => 'textarea']); + + echo $this->Form->hidden('nom_modificateur', ['value' => $username ]); ?>
- Form->button(__('Submit')) ?> + Form->button(__('Valider')) ?> Form->end() ?>
+ +
+ element('menu'); + echo $this->element('menu_form', [ 'pluralHumanName' => 'Suivis' ]); + ?> +
\ No newline at end of file diff --git a/src/Template/Suivis/index.ctp b/src/Template/Suivis/index.ctp index 6b15c93..e60c1ec 100755 --- a/src/Template/Suivis/index.ctp +++ b/src/Template/Suivis/index.ctp @@ -45,7 +45,4 @@
element('menu') ?> - element('menu_index', - [ 'pluralHumanName' => 'Suivis', - 'singularHumanName' => 'Suivi' ]) ?>
\ No newline at end of file diff --git a/src/Template/SurCategories/view.ctp b/src/Template/SurCategories/view.ctp index 0f67b46..5b10028 100755 --- a/src/Template/SurCategories/view.ctp +++ b/src/Template/SurCategories/view.ctp @@ -29,6 +29,34 @@ function displayElement($nom, $valeur) { ?> + + +

+ + Catégorie associé (non implémenter) +

+
+ + + + + + + + + + + + + + +
nom) ?> + Html->link(__(''), ['controller' => 'Categories', 'action' => 'view', $category->id], ['escape' => false, 'style' => 'margin:0']) ?> +
+ +
+ +
diff --git a/src/Template/Users/add.ctp b/src/Template/Users/add.ctp index daf35b9..8619afa 100755 --- a/src/Template/Users/add.ctp +++ b/src/Template/Users/add.ctp @@ -1,8 +1,8 @@ -
+
Form->create($user) ?>
- +

Ajouter un utilisateur

Form->input('nom'); echo $this->Form->input('username'); @@ -11,9 +11,16 @@ echo $this->Form->input('role', [ 'options' => ['Super Administrateur' => 'Super Administrateur', 'Administration Plus' => 'Administration Plus', 'Administration' => 'Administration', 'Responsable' => 'Responsable', 'Utilisateur' => 'Utilisateur'] ]); - echo $this->Form->input('groupes_metier_id', ['options' => $groupesMetiers, 'empty' => true]); + echo $this->Form->input('groupes_metier_id', ['label' => 'Groupe métier', 'options' => $groupesMetiers, 'empty' => true]); ?>
- Form->button(__('Ajouter')) ?> + Form->button(__('Valider')) ?> Form->end() ?>
+ +
+ element('menu'); + echo $this->element('menu_form', [ 'pluralHumanName' => 'Utilisateurs' ]); + ?> +
\ No newline at end of file diff --git a/src/Template/Users/edit.ctp b/src/Template/Users/edit.ctp index 93814fa..4ee1b72 100755 --- a/src/Template/Users/edit.ctp +++ b/src/Template/Users/edit.ctp @@ -1,30 +1,26 @@ - -
+ +
Form->create($user) ?>
- +

Editer un utilisateur

Form->input('nom'); echo $this->Form->input('username'); echo $this->Form->input('password'); echo $this->Form->input('email'); - echo $this->Form->input('role'); - echo $this->Form->input('groupes_metier_id', ['options' => $groupesMetiers, 'empty' => true]); + echo $this->Form->input('role', [ + 'options' => ['Super Administrateur' => 'Super Administrateur', 'Administration Plus' => 'Administration Plus', 'Administration' => 'Administration', 'Responsable' => 'Responsable', 'Utilisateur' => 'Utilisateur'] + ]); + echo $this->Form->input('groupes_metier_id', ['label' => 'Groupe métier', 'options' => $groupesMetiers, 'empty' => true]); ?>
- Form->button(__('Submit')) ?> + Form->button(__('Valider')) ?> Form->end() ?>
+ +
+ element('menu'); + echo $this->element('menu_form', [ 'pluralHumanName' => 'Utilisateurs' ]); + ?> +
\ No newline at end of file diff --git a/src/Template/Users/login.ctp b/src/Template/Users/login.ctp index e7e9209..6dd5ba9 100755 --- a/src/Template/Users/login.ctp +++ b/src/Template/Users/login.ctp @@ -4,8 +4,8 @@ Flash->render('auth') ?> Form->create() ?>
- Form->input('username') ?> - Form->input('password') ?> + Form->input('username', ['label' => 'Login']) ?> + Form->input('password', ['label' => 'Mot de passe']) ?>
Form->button(__('Se Connecter')); ?> Form->end() ?> -- libgit2 0.21.2