Commit 19798ef9cf669701d2c27b9394da46d1232369bb

Authored by Alexandre
1 parent eef700b9

Mode_install, maj script_install, page d'acceuil -> login, maj script bd

Avancement : Implémentation complète du CRUD +++

#3528
#3530
#3531
#3533
database/labinvent_2.0_19-04-16.sql
@@ -28,7 +28,12 @@ CREATE SCHEMA IF NOT EXISTS mydb DEFAULT CHARACTER SET latin1; @@ -28,7 +28,12 @@ CREATE SCHEMA IF NOT EXISTS mydb DEFAULT CHARACTER SET latin1;
28 -- ni avec ceci : 28 -- ni avec ceci :
29 -- grant all on mydb.* to 'bddUserName'@'%' identified by 'bddUserPass'; 29 -- grant all on mydb.* to 'bddUserName'@'%' identified by 'bddUserPass';
30 -- Il faut donc faire ceci (ajouter localhost) et on pourra alors se connecter a la BD !!! : 30 -- Il faut donc faire ceci (ajouter localhost) et on pourra alors se connecter a la BD !!! :
  31 +
  32 +-- Il faut supprimer l'utilisateur avant de l'ajouter.
  33 +GRANT USAGE ON *.* TO 'mydb';
  34 +DROP USER 'mydb';
31 grant all on mydb.* to 'mydb'@'localhost' identified by 'mydb1'; 35 grant all on mydb.* to 'mydb'@'localhost' identified by 'mydb1';
  36 +
32 -- Mais, ca serait plus prudent de limiter les droits (au lieu de "grant all"): 37 -- Mais, ca serait plus prudent de limiter les droits (au lieu de "grant all"):
33 -- grant select,insert,update,delete on mydb.* to ... 38 -- grant select,insert,update,delete on mydb.* to ...
34 flush privileges; 39 flush privileges;
install/installation.sh
@@ -356,14 +356,13 @@ echo "Si vous voulez le conserver, le script de creation de la BD est database/b @@ -356,14 +356,13 @@ echo "Si vous voulez le conserver, le script de creation de la BD est database/b
356 echo 356 echo
357 echo "MAINTENANT :" 357 echo "MAINTENANT :"
358 echo "1) Verifiez que la BD d'inventaire ($bddName) a bien ete cree (avec phpmyadmin par exemple)" 358 echo "1) Verifiez que la BD d'inventaire ($bddName) a bien ete cree (avec phpmyadmin par exemple)"
359 -echo "2) Verifiez le contenu de votre fichier de configuration de la BD (config/app.php)" 359 +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..."
360 echo "3) Testez l'accès à l'application par le web" 360 echo "3) Testez l'accès à l'application par le web"
361 -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." 361 +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."
362 echo 362 echo
363 echo "N'oubliez pas 3 choses importantes (voir la doc INSTALLATION.txt pour plus de details) :" 363 echo "N'oubliez pas 3 choses importantes (voir la doc INSTALLATION.txt pour plus de details) :"
364 echo "1) Passer en mode LDAP (si vous le souhaitez et si ca n'est pas deja fait)" 364 echo "1) Passer en mode LDAP (si vous le souhaitez et si ca n'est pas deja fait)"
365 echo "2) Personnaliser les 2 fichiers logos suivants dans webroot/img/ :" 365 echo "2) Personnaliser les 2 fichiers logos suivants dans webroot/img/ :"
366 echo "- logo_entity.jpg : le logo du laboratoire" 366 echo "- logo_entity.jpg : le logo du laboratoire"
367 echo "- logo_software.jpg : le logo du logiciel" 367 echo "- logo_software.jpg : le logo du logiciel"
368 -echo "3) Personnaliser le logiciel pour votre entite (laboratoire) (via le fichier de configuration config/app.php)  
369 -echo 368 +echo "3) Personnaliser le logiciel pour votre entite (laboratoire) (via le menu de configuration dans la section outils de l'application)"
src/Controller/CategoriesController.php
@@ -39,7 +39,9 @@ class CategoriesController extends AppController @@ -39,7 +39,9 @@ class CategoriesController extends AppController
39 $category = $this->Categories->get($id, [ 39 $category = $this->Categories->get($id, [
40 'contain' => ['SurCategories'] 40 'contain' => ['SurCategories']
41 ]); 41 ]);
42 - 42 + //$sousCategories = $this->Categories->SousCategories->find('list');
  43 + //$this->set('sousCategories', $sousCategories);
  44 +
43 $this->set('category', $category); 45 $this->set('category', $category);
44 $this->set('_serialize', ['category']); 46 $this->set('_serialize', ['category']);
45 } 47 }
@@ -61,7 +63,8 @@ class CategoriesController extends AppController @@ -61,7 +63,8 @@ class CategoriesController extends AppController
61 $this->Flash->error(__('La catégorie n\'a pas pu être ajouté.')); 63 $this->Flash->error(__('La catégorie n\'a pas pu être ajouté.'));
62 } 64 }
63 } 65 }
64 - $surCategories = $this->Categories->SurCategories->find('list', ['limit' => 200]); 66 + $surCategories = $this->Categories->SurCategories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']);
  67 +
65 $this->set(compact('category', 'surCategories')); 68 $this->set(compact('category', 'surCategories'));
66 $this->set('_serialize', ['category']); 69 $this->set('_serialize', ['category']);
67 } 70 }
@@ -87,7 +90,8 @@ class CategoriesController extends AppController @@ -87,7 +90,8 @@ class CategoriesController extends AppController
87 $this->Flash->error(__('La catégorie n\'a pas pu être édité.')); 90 $this->Flash->error(__('La catégorie n\'a pas pu être édité.'));
88 } 91 }
89 } 92 }
90 - $surCategories = $this->Categories->SurCategories->find('list', ['limit' => 200]); 93 + $surCategories = $this->Categories->SurCategories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']);
  94 +
91 $this->set(compact('category', 'surCategories')); 95 $this->set(compact('category', 'surCategories'));
92 $this->set('_serialize', ['category']); 96 $this->set('_serialize', ['category']);
93 } 97 }
src/Controller/EmpruntsController.php
@@ -2,6 +2,8 @@ @@ -2,6 +2,8 @@
2 namespace App\Controller; 2 namespace App\Controller;
3 3
4 use App\Controller\AppController; 4 use App\Controller\AppController;
  5 +use Cake\ORM\TableRegistry;
  6 +
5 7
6 /** 8 /**
7 * Emprunts Controller 9 * Emprunts Controller
@@ -61,8 +63,33 @@ class EmpruntsController extends AppController @@ -61,8 +63,33 @@ class EmpruntsController extends AppController
61 $this->Flash->error(__('L\'emprunt n\'a pas pu être ajouté..')); 63 $this->Flash->error(__('L\'emprunt n\'a pas pu être ajouté..'));
62 } 64 }
63 } 65 }
64 - $materiels = $this->Emprunts->Materiels->find('list', ['limit' => 200]);  
65 - $this->set(compact('emprunt', 'materiels')); 66 + $materiels = $this->Emprunts->Materiels->find('list');
  67 + $numMateriel = $this->Emprunts->Materiels->find()->select('numero_laboratoire')->where(['id =' => $this->passedArgs[0]])->first()['numero_laboratoire'];
  68 +
  69 + // 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)
  70 + $disp_interne = 'display:block';
  71 + $disp_externe = 'display:none';
  72 + $interne = $emprunt->get('emprunt_interne');
  73 + if (isset($interne)) {
  74 + if ($emprunt->get('emprunt_interne') == 1) {
  75 + $disp_interne = 'display:block';
  76 + $disp_externe = 'display:none';
  77 + } else {
  78 + $disp_interne = 'display:none';
  79 + $disp_externe = 'display:block';
  80 + }
  81 + }
  82 + $nom_emprunteur_int = $this->Auth->user('username');
  83 + $mail_emprunteur_int = TableRegistry::get('Users')->find()->select('email')->where(['username =' => $this->Auth->user('username')])->first()['email'];
  84 +
  85 + $nom_emprunteur_ext = '';
  86 + $mail_emprunteur_ext = '';
  87 +
  88 + $utilisateurs = TableRegistry::get('Users')->find('list', [ 'keyField' => 'nom', 'valueField' => 'nom']);
  89 +
  90 + $sites = TableRegistry::get('Sites')->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']);
  91 +
  92 + $this->set(compact('emprunt', 'materiels', 'numMateriel', 'disp_externe', 'disp_interne', 'nom_emprunteur_int', 'mail_emprunteur_int', 'nom_emprunteur_ext', 'mail_emprunteur_ext', 'utilisateurs', 'sites'));
66 $this->set('_serialize', ['emprunt']); 93 $this->set('_serialize', ['emprunt']);
67 } 94 }
68 95
@@ -87,8 +114,33 @@ class EmpruntsController extends AppController @@ -87,8 +114,33 @@ class EmpruntsController extends AppController
87 $this->Flash->error(__('L\'emprunt n\'a pas pu être édité.')); 114 $this->Flash->error(__('L\'emprunt n\'a pas pu être édité.'));
88 } 115 }
89 } 116 }
90 - $materiels = $this->Emprunts->Materiels->find('list', ['limit' => 200]);  
91 - $this->set(compact('emprunt', 'materiels')); 117 + $materiels = $this->Emprunts->Materiels->find('list');
  118 + $numMateriel = $this->Emprunts->Materiels->find()->select('numero_laboratoire')->where(['id =' => $emprunt->get('materiel_id')])->first()['numero_laboratoire'];
  119 +
  120 + // 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)
  121 + $disp_interne = 'display:block';
  122 + $disp_externe = 'display:none';
  123 + $interne = $emprunt->get('emprunt_interne');
  124 + if (isset ($interne)) {
  125 + if ($emprunt->get('emprunt_interne') == 1) {
  126 + $disp_interne = 'display:block';
  127 + $disp_externe = 'display:none';
  128 + } else {
  129 + $disp_interne = 'display:none';
  130 + $disp_externe = 'display:block';
  131 + }
  132 + }
  133 + $nom_emprunteur_int = $this->Auth->user('username');
  134 + $mail_emprunteur_int = TableRegistry::get('Users')->find()->select('email')->where(['username =' => $this->Auth->user('username')])->first()['email'];
  135 +
  136 + $nom_emprunteur_ext = '';
  137 + $mail_emprunteur_ext = '';
  138 +
  139 + $utilisateurs = TableRegistry::get('Users')->find('list', [ 'keyField' => 'nom', 'valueField' => 'nom']);
  140 +
  141 + $sites = TableRegistry::get('Sites')->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']);
  142 +
  143 + $this->set(compact('emprunt', 'materiels', 'numMateriel', 'disp_externe', 'disp_interne', 'nom_emprunteur_int', 'mail_emprunteur_int', 'nom_emprunteur_ext', 'mail_emprunteur_ext', 'utilisateurs', 'sites'));
92 $this->set('_serialize', ['emprunt']); 144 $this->set('_serialize', ['emprunt']);
93 } 145 }
94 146
src/Controller/MaterielsController.php
@@ -3,6 +3,7 @@ namespace App\Controller; @@ -3,6 +3,7 @@ namespace App\Controller;
3 3
4 use App\Controller\AppController; 4 use App\Controller\AppController;
5 use Cake\Core\Configure; 5 use Cake\Core\Configure;
  6 +use Cake\ORM\TableRegistry;
6 7
7 /** 8 /**
8 * Materiels Controller 9 * Materiels Controller
@@ -64,14 +65,19 @@ class MaterielsController extends AppController @@ -64,14 +65,19 @@ class MaterielsController extends AppController
64 $this->Flash->error(__('Le matériel n\'a pas pu être ajouté.')); 65 $this->Flash->error(__('Le matériel n\'a pas pu être ajouté.'));
65 } 66 }
66 } 67 }
67 - $surCategories = $this->Materiels->SurCategories->find('list', ['limit' => 200]);  
68 - $categories = $this->Materiels->Categories->find('list', ['limit' => 200]);  
69 - $sousCategories = $this->Materiels->SousCategories->find('list', ['limit' => 200]);  
70 - $groupesThematiques = $this->Materiels->GroupesThematiques->find('list', ['limit' => 200]);  
71 - $groupesMetiers = $this->Materiels->GroupesMetiers->find('list', ['limit' => 200]);  
72 - $organismes = $this->Materiels->Organismes->find('list', ['limit' => 200]);  
73 - $sites = $this->Materiels->Sites->find('list', ['limit' => 200]);  
74 - $this->set(compact('materiel', 'surCategories', 'categories', 'sousCategories', 'groupesThematiques', 'groupesMetiers', 'organismes', 'sites')); 68 + $surCategories = $this->Materiels->SurCategories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']);
  69 + $categories = $this->Materiels->Categories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']);
  70 + $sousCategories = $this->Materiels->SousCategories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']);
  71 + $groupesThematiques = $this->Materiels->GroupesThematiques->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']);
  72 + $groupesMetiers = $this->Materiels->GroupesMetiers->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']);
  73 + $organismes = $this->Materiels->Organismes->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']);
  74 + $sites = $this->Materiels->Sites->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']);
  75 +
  76 + $utilisateurs = TableRegistry::get('Users')->find('list', [ 'keyField' => 'nom', 'valueField' => 'nom']);
  77 +
  78 + $mail_responsable = TableRegistry::get('Users')->find()->select('email')->where(['username =' => $this->Auth->user('username')])->first()['email'];
  79 +
  80 + $this->set(compact('materiel', 'surCategories', 'categories', 'sousCategories', 'groupesThematiques', 'groupesMetiers', 'organismes', 'sites', 'utilisateurs', 'mail_responsable'));
75 $this->set('_serialize', ['materiel']); 81 $this->set('_serialize', ['materiel']);
76 } 82 }
77 83
@@ -96,14 +102,25 @@ class MaterielsController extends AppController @@ -96,14 +102,25 @@ class MaterielsController extends AppController
96 $this->Flash->error(__('Le matériel n\'a pas pu être édité.')); 102 $this->Flash->error(__('Le matériel n\'a pas pu être édité.'));
97 } 103 }
98 } 104 }
99 - $surCategories = $this->Materiels->SurCategories->find('list', ['limit' => 200]);  
100 - $categories = $this->Materiels->Categories->find('list', ['limit' => 200]);  
101 - $sousCategories = $this->Materiels->SousCategories->find('list', ['limit' => 200]);  
102 - $groupesThematiques = $this->Materiels->GroupesThematiques->find('list', ['limit' => 200]);  
103 - $groupesMetiers = $this->Materiels->GroupesMetiers->find('list', ['limit' => 200]);  
104 - $organismes = $this->Materiels->Organismes->find('list', ['limit' => 200]);  
105 - $sites = $this->Materiels->Sites->find('list', ['limit' => 200]);  
106 - $this->set(compact('materiel', 'surCategories', 'categories', 'sousCategories', 'groupesThematiques', 'groupesMetiers', 'organismes', 'sites')); 105 + $surCategories = $this->Materiels->SurCategories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']);
  106 + $categories = $this->Materiels->Categories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']);
  107 + $sousCategories = $this->Materiels->SousCategories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']);
  108 + $groupesThematiques = $this->Materiels->GroupesThematiques->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']);
  109 + $groupesMetiers = $this->Materiels->GroupesMetiers->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']);
  110 + $organismes = $this->Materiels->Organismes->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']);
  111 + $sites = $this->Materiels->Sites->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']);
  112 +
  113 + $utilisateurs = TableRegistry::get('Users')->find('list', [ 'keyField' => 'nom', 'valueField' => 'nom']);
  114 +
  115 + if(!empty($materiel->get('nom_responsable'))){
  116 + if(!in_array($materiel->get('nom_responsable'), $utilisateurs->toArray())){
  117 + $nom_ancien_responsable = $materiel->get('nom_responsable');
  118 + $this->set(compact('nom_ancien_responsable'));
  119 + }
  120 + }
  121 + $mail_responsable = TableRegistry::get('Users')->find()->select('email')->where(['username =' => $this->Auth->user('username')])->first()['email'];
  122 +
  123 + $this->set(compact('materiel', 'surCategories', 'categories', 'sousCategories', 'groupesThematiques', 'groupesMetiers', 'organismes', 'sites', 'utilisateurs', 'mail_responsable'));
107 $this->set('_serialize', ['materiel']); 124 $this->set('_serialize', ['materiel']);
108 } 125 }
109 126
@@ -135,25 +152,25 @@ class MaterielsController extends AppController @@ -135,25 +152,25 @@ class MaterielsController extends AppController
135 } 152 }
136 153
137 /** 154 /**
138 - * Activate debug mode 155 + * Activate install mode
139 * 156 *
140 * @return \Cake\Network\Response|NULL 157 * @return \Cake\Network\Response|NULL
141 */ 158 */
142 - public function debugOn() {  
143 - //Configure::write('debug',true);  
144 - $this->request->session()->write('debug',true); 159 + public function installOn() {
  160 + //Configure::write('install',true);
  161 + $this->request->session()->write('install',true);
145 162
146 return $this->redirect(['controller' => 'pages', 'action' => 'home']); 163 return $this->redirect(['controller' => 'pages', 'action' => 'home']);
147 } 164 }
148 165
149 /** 166 /**
150 - * Desactivate debug mode 167 + * Desactivate install mode
151 * 168 *
152 * @return \Cake\Network\Response|NULL 169 * @return \Cake\Network\Response|NULL
153 */ 170 */
154 - public function debugOff() {  
155 - //Configure::write('debug', false);  
156 - $this->request->session()->write('debug',false); 171 + public function installOff() {
  172 + //Configure::write('install', false);
  173 + $this->request->session()->write('install',false);
157 174
158 return $this->redirect(['controller' => 'pages', 'action' => 'tools']); 175 return $this->redirect(['controller' => 'pages', 'action' => 'tools']);
159 } 176 }
src/Controller/PagesController.php
@@ -37,6 +37,11 @@ class PagesController extends AppController @@ -37,6 +37,11 @@ class PagesController extends AppController
37 */ 37 */
38 public function display() 38 public function display()
39 { 39 {
  40 + //Si l'utilisateur n'est pas connecté, on le redirige vers la page login.ctp
  41 + if (!($this->Auth->user('id'))) {
  42 + return $this->redirect(['controller' => 'users', 'action' => 'login']);
  43 + }
  44 +
40 $path = func_get_args(); 45 $path = func_get_args();
41 46
42 $count = count($path); 47 $count = count($path);
src/Controller/SousCategoriesController.php
@@ -61,7 +61,8 @@ class SousCategoriesController extends AppController @@ -61,7 +61,8 @@ class SousCategoriesController extends AppController
61 $this->Flash->error(__('La sous-catégorie n\'as pas pu être ajouté.')); 61 $this->Flash->error(__('La sous-catégorie n\'as pas pu être ajouté.'));
62 } 62 }
63 } 63 }
64 - $categories = $this->SousCategories->Categories->find('list', ['limit' => 200]); 64 + $categories = $this->SousCategories->Categories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']);
  65 +
65 $this->set(compact('sousCategory', 'categories')); 66 $this->set(compact('sousCategory', 'categories'));
66 $this->set('_serialize', ['sousCategory']); 67 $this->set('_serialize', ['sousCategory']);
67 } 68 }
@@ -87,7 +88,8 @@ class SousCategoriesController extends AppController @@ -87,7 +88,8 @@ class SousCategoriesController extends AppController
87 $this->Flash->error(__('La sous-catégorie n\'as pas pu être édité.')); 88 $this->Flash->error(__('La sous-catégorie n\'as pas pu être édité.'));
88 } 89 }
89 } 90 }
90 - $categories = $this->SousCategories->Categories->find('list', ['limit' => 200]); 91 + $categories = $this->SousCategories->Categories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']);
  92 +
91 $this->set(compact('sousCategory', 'categories')); 93 $this->set(compact('sousCategory', 'categories'));
92 $this->set('_serialize', ['sousCategory']); 94 $this->set('_serialize', ['sousCategory']);
93 } 95 }
src/Controller/SuivisController.php
@@ -2,6 +2,7 @@ @@ -2,6 +2,7 @@
2 namespace App\Controller; 2 namespace App\Controller;
3 3
4 use App\Controller\AppController; 4 use App\Controller\AppController;
  5 +use Cake\ORM\TableRegistry;
5 6
6 /** 7 /**
7 * Suivis Controller 8 * Suivis Controller
@@ -61,8 +62,13 @@ class SuivisController extends AppController @@ -61,8 +62,13 @@ class SuivisController extends AppController
61 $this->Flash->error(__('Le suivi n\'a pas pu être ajouté.')); 62 $this->Flash->error(__('Le suivi n\'a pas pu être ajouté.'));
62 } 63 }
63 } 64 }
64 - $materiels = $this->Suivis->Materiels->find('list', ['limit' => 200]);  
65 - $this->set(compact('suivi', 'materiels')); 65 + $materiels = $this->Suivis->Materiels->find('list');
  66 +
  67 + $numMateriel = $this->Suivis->Materiels->find()->select('numero_laboratoire')->where(['id =' => $this->passedArgs[0]])->first()['numero_laboratoire'];
  68 +
  69 + $typeSuivis = TableRegistry::get('TypeSuivis')->find('list', [ 'keyField' => 'nom', 'valueField' => 'nom']);
  70 +
  71 + $this->set(compact('suivi', 'materiels', 'typeSuivis', 'numMateriel'));
66 $this->set('_serialize', ['suivi']); 72 $this->set('_serialize', ['suivi']);
67 } 73 }
68 74
@@ -87,8 +93,13 @@ class SuivisController extends AppController @@ -87,8 +93,13 @@ class SuivisController extends AppController
87 $this->Flash->error(__('Le suivi n\'a pas pu être édité.')); 93 $this->Flash->error(__('Le suivi n\'a pas pu être édité.'));
88 } 94 }
89 } 95 }
90 - $materiels = $this->Suivis->Materiels->find('list', ['limit' => 200]);  
91 - $this->set(compact('suivi', 'materiels')); 96 + $materiels = $this->Suivis->Materiels->find('list');
  97 +
  98 + $numMateriel = $this->Suivis->Materiels->find()->select('numero_laboratoire')->where(['id =' => $suivi->get('materiel_id')])->first()['numero_laboratoire'];
  99 +
  100 + $typeSuivis = TableRegistry::get('TypeSuivis')->find('list', [ 'keyField' => 'nom', 'valueField' => 'nom']);
  101 +
  102 + $this->set(compact('suivi', 'materiels', 'typeSuivis', 'numMateriel'));
92 $this->set('_serialize', ['suivi']); 103 $this->set('_serialize', ['suivi']);
93 } 104 }
94 105
src/Controller/UsersController.php
@@ -89,7 +89,8 @@ class UsersController extends AppController @@ -89,7 +89,8 @@ class UsersController extends AppController
89 $this->Flash->error(__('L\utilisateur n\'a pas pu être ajouté.')); 89 $this->Flash->error(__('L\utilisateur n\'a pas pu être ajouté.'));
90 } 90 }
91 } 91 }
92 - $groupesMetiers = $this->Users->GroupesMetiers->find('list', ['limit' => 200]); 92 + $groupesMetiers = $this->Users->GroupesMetiers->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']);
  93 +
93 $this->set(compact('user', 'groupesMetiers')); 94 $this->set(compact('user', 'groupesMetiers'));
94 $this->set('_serialize', ['user']); 95 $this->set('_serialize', ['user']);
95 } 96 }
@@ -115,7 +116,8 @@ class UsersController extends AppController @@ -115,7 +116,8 @@ class UsersController extends AppController
115 $this->Flash->error(__('L\utilisateur n\'a pas pu être édité.')); 116 $this->Flash->error(__('L\utilisateur n\'a pas pu être édité.'));
116 } 117 }
117 } 118 }
118 - $groupesMetiers = $this->Users->GroupesMetiers->find('list', ['limit' => 200]); 119 + $groupesMetiers = $this->Users->GroupesMetiers->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']);
  120 +
119 $this->set(compact('user', 'groupesMetiers')); 121 $this->set(compact('user', 'groupesMetiers'));
120 $this->set('_serialize', ['user']); 122 $this->set('_serialize', ['user']);
121 } 123 }
src/Model/Table/EmpruntsTable.php
@@ -50,46 +50,104 @@ class EmpruntsTable extends Table @@ -50,46 +50,104 @@ class EmpruntsTable extends Table
50 ->allowEmpty('id', 'create'); 50 ->allowEmpty('id', 'create');
51 51
52 $validator 52 $validator
53 - ->date('date_emprunt')  
54 ->allowEmpty('date_emprunt'); 53 ->allowEmpty('date_emprunt');
55 54
56 $validator 55 $validator
57 - ->date('date_retour_emprunt')  
58 - ->allowEmpty('date_retour_emprunt'); 56 + ->allowEmpty('date_retour_emprunt')
  57 + ->add('nom_emprunteur_ext', 'valid', ['rule' => ['checkReturnDateIsAfterLoanDate'], 'message' => 'La date de retour doit être postérieure à la date de l\'emprunt.', 'provider' => 'table']);
59 58
60 $validator 59 $validator
61 ->boolean('emprunt_interne') 60 ->boolean('emprunt_interne')
62 ->allowEmpty('emprunt_interne'); 61 ->allowEmpty('emprunt_interne');
63 62
64 $validator 63 $validator
65 - ->allowEmpty('laboratoire'); 64 + ->allowEmpty('laboratoire')
  65 + ->add('laboratoire', 'valid', ['rule' => ['check_string'], 'message' => 'Le champ doit être valide.', 'provider' => 'table'])
  66 + ->add('laboratoire', 'valid', ['rule' => ['checkLaboratoire'], 'message' => 'Le champ doit être rempli pour un emprunt externe.', 'provider' => 'table']);
66 67
  68 + /*
67 $validator 69 $validator
68 - ->allowEmpty('e_lieu_stockage');  
69 -  
70 - $validator  
71 - ->allowEmpty('e_lieu_detail');  
72 - 70 + ->notEmpty('e_lieu_stockage');
  71 + */
  72 +
73 $validator 73 $validator
74 - ->allowEmpty('nom_emprunteur');  
75 - 74 + ->allowEmpty('e_lieu_detail')
  75 + ->add('e_lieu_detail', 'valid', ['rule' => ['check_string'], 'message' => 'Le champ doit être valide.', 'provider' => 'table'])
  76 + ->add('e_lieu_detail', 'valid', ['rule' => ['checkLieu'], 'message' => 'Le champ doit être rempli pour un emprunt interne.', 'provider' => 'table']);
  77 +
  78 + /*
76 $validator 79 $validator
77 - ->allowEmpty('email_emprunteur');  
78 - 80 + ->notEmpty('nom_emprunteur_int');
  81 + */
  82 +
79 $validator 83 $validator
80 - ->allowEmpty('tel');  
81 - 84 + ->allowEmpty('email_emprunteur_int');
  85 +
82 $validator 86 $validator
83 - ->allowEmpty('commentaire'); 87 + ->allowEmpty('nom_emprunteur_ext')
  88 + ->add('nom_emprunteur_ext', 'valid', ['rule' => ['checkEmpruntExt'], 'message' => 'Le champ doit être rempli.', 'provider' => 'table']);
84 89
85 $validator 90 $validator
86 - ->allowEmpty('nom_createur');  
87 - 91 + ->allowEmpty('email_emprunteur_ext')
  92 + ->add('email_emprunteur_ext', 'valid', ['rule' => ['checkEmailExt'], 'message' => 'Cet Email n\'est pas valide.', 'provider' => 'table']);
  93 +
88 $validator 94 $validator
89 - ->allowEmpty('nom_modificateur');  
90 - 95 + ->allowEmpty('commentaire')
  96 + ->add('commentaire', 'valid', ['rule' => ['check_string_with_some_special_cars'], 'message' => 'Le champ doit être valide.', 'provider' => 'table']);
  97 +
91 return $validator; 98 return $validator;
92 } 99 }
  100 +
  101 +
  102 + // autoriser les caracteres habituels standards pour un ou plusieurs MOTs
  103 + // accents + - _ / () . , \s (=space)
  104 + private $string = "a-zA-Z0-9éèàùâêôîôûç%().,\/\s\+\-_";
  105 +
  106 + public function check_string($check) {
  107 + return (bool) preg_match('/^['.$this->string.']*$/', $check);
  108 + }
  109 +
  110 + // autoriser les caracteres spéciaux (pour une PHRASE ou paragraphe) :
  111 + // check_string PLUS ces symboles ====> & * > < ? % ! : , " '
  112 + public function check_string_with_some_special_cars($check) {
  113 + return (bool) preg_match('/^['.$this->string.'?%!:,&*><\-\+\="\''.']*$/', $check);
  114 + }
  115 +
  116 + function checkReturnDateIsAfterLoanDate() {
  117 + /*
  118 + $dateEmprunt = $this->data [$this->name] ['date_emprunt'];
  119 + $dateRetour = $this->data [$this->name] ['date_retour_emprunt'];
  120 + $dateEmprunt = explode("-", $dateEmprunt);
  121 + $dateRetour = explode("-", $dateRetour);
  122 + $dateEmprunt = $dateEmprunt[2].$dateEmprunt[1].$dateEmprunt[0];
  123 + $dateRetour = $dateRetour[2].$dateRetour[1].$dateRetour[0];
  124 + if ($dateEmprunt > $dateRetour) {
  125 + return false;
  126 + }
  127 + return true;
  128 + */
  129 + return true;
  130 + }
  131 +
  132 + function checkEmprunt() {
  133 + //return ($this->data [$this->name] ['emprunt_interne'] == 1 || $this->data [$this->name] ['nom_emprunteur_ext'] != '');
  134 + return true;
  135 + }
  136 +
  137 + function checkEmail() {
  138 + //return ($this->data [$this->name] ['emprunt_interne'] == 1 || Validation::email ( $this->data [$this->name] ['email_emprunteur_ext'] ));
  139 + return true;
  140 + }
  141 +
  142 + function checkLaboratoire() {
  143 + //return ((($this->data [$this->name] ['emprunt_interne'] == 0) && ($this->data [$this->name] ['laboratoire'] != '')) || ($this->data [$this->name] ['emprunt_interne'] == 1));
  144 + return true;
  145 + }
  146 +
  147 + function checkLieu() {
  148 + //return ((($this->data [$this->name] ['emprunt_interne'] == 1) && ($this->data [$this->name] ['e_lieu_detail'] != '')) || ($this->data [$this->name] ['emprunt_interne'] == 0));
  149 + return true;
  150 + }
93 151
94 /** 152 /**
95 * Returns a rules checker object that will be used for validating 153 * Returns a rules checker object that will be used for validating
src/Model/Table/MaterielsTable.php
@@ -24,6 +24,9 @@ use Cake\Validation\Validator; @@ -24,6 +24,9 @@ use Cake\Validation\Validator;
24 class MaterielsTable extends Table 24 class MaterielsTable extends Table
25 { 25 {
26 26
  27 + public $ALL_STATUS = array('CREATED', 'VALIDATED', 'TOBEARCHIVED', 'ARCHIVED');
  28 +
  29 +
27 /** 30 /**
28 * Initialize method 31 * Initialize method
29 * 32 *
@@ -85,57 +88,74 @@ class MaterielsTable extends Table @@ -85,57 +88,74 @@ class MaterielsTable extends Table
85 ->allowEmpty('id', 'create'); 88 ->allowEmpty('id', 'create');
86 89
87 $validator 90 $validator
88 - ->allowEmpty('designation'); 91 + ->notEmpty('designation' ,'Ce champ doit être rempli')
  92 + ->add('designation', 'valid', ['rule' => 'check_string', 'message' => 'Ce champ contient des caractères interdits', 'provider' => 'table']);
89 93
90 $validator 94 $validator
  95 + ->notEmpty('sur_categorie_id', 'Vous devez sélectionner une valeur');
  96 +
  97 + $validator
  98 + ->notEmpty('categorie_id', 'Vous devez sélectionner une valeur');
  99 +
  100 + $validator
91 ->allowEmpty('numero_laboratoire') 101 ->allowEmpty('numero_laboratoire')
92 ->add('numero_laboratoire', 'unique', ['rule' => 'validateUnique', 'provider' => 'table']); 102 ->add('numero_laboratoire', 'unique', ['rule' => 'validateUnique', 'provider' => 'table']);
93 103
94 $validator 104 $validator
95 - ->allowEmpty('description'); 105 + ->allowEmpty('description')
  106 + ->add('description', 'valid', ['rule' => 'check_string_with_some_special_cars', 'message' => 'Ce champ contient des caractères interdits', 'provider' => 'table']);
96 107
97 $validator 108 $validator
98 ->boolean('materiel_administratif') 109 ->boolean('materiel_administratif')
99 - ->allowEmpty('materiel_administratif'); 110 + ->allowEmpty('materiel_administratif')
  111 + ->add('materiel_administratif', 'valid', ['rule' => 'checkAtLeastOneChecked', 'message' => 'Le matériel est obligatoirement inventoriable ou technique', 'provider' => 'table'])
  112 + ->add('materiel_administratif', 'mustbeadministratif', ['rule' => 'checkIfIsAdministratifWhenShouldBe', 'message' => 'Le matériel vaut plus de 800€ HT, il est donc obligatoirement inventoriable', 'provider' => 'table'])
  113 + ->add('materiel_administratif', 'canbeadministratif', ['rule' => 'checkIfIsNotAdministratifWhenShouldNotBe', 'message' => 'Le matériel vaut moins de 800€ HT, il n\'est donc pas inventoriable', 'provider' => 'table']);
100 114
101 $validator 115 $validator
102 ->boolean('materiel_technique') 116 ->boolean('materiel_technique')
103 ->allowEmpty('materiel_technique'); 117 ->allowEmpty('materiel_technique');
104 118
105 $validator 119 $validator
106 - ->allowEmpty('status');  
107 - 120 + ->add('status', 'valid', ['rule' => 'checkStatus', 'message' => 'Le statut doit prendre une des 4 valeurs CREATED, VALIDATED, TOBEARCHIVED, ou ARCHIVED', 'provider' => 'table']);
  121 +
108 $validator 122 $validator
109 - ->date('date_acquisition')  
110 - ->allowEmpty('date_acquisition');  
111 - 123 + ->notEmpty('date_acquisition', 'Ce champ doit être rempli');
  124 +
112 $validator 125 $validator
113 - ->allowEmpty('fournisseur'); 126 + ->allowEmpty('fournisseur')
  127 + ->add('fournisseur', 'valid', ['rule' => 'check_string', 'message' => 'Ce champ contient des caractères interdits', 'provider' => 'table']);
114 128
115 $validator 129 $validator
116 ->numeric('prix_ht') 130 ->numeric('prix_ht')
117 - ->allowEmpty('prix_ht'); 131 + ->allowEmpty('prix_ht')
  132 + ->add('prix_ht', 'valid', ['rule' => 'check_string', 'message' => 'Ce champ contient des caractères interdits', 'provider' => 'table']);
118 133
119 $validator 134 $validator
120 - ->allowEmpty('eotp'); 135 + ->allowEmpty('eotp')
  136 + ->add('eotp', 'valid', ['rule' => 'check_string', 'message' => 'Ce champ contient des caractères interdits', 'provider' => 'table']);
121 137
122 $validator 138 $validator
123 - ->allowEmpty('numero_commande');  
124 - 139 + ->allowEmpty('numero_commande')
  140 + ->add('numero_commande', 'valid', ['rule' => 'check_string', 'message' => 'Ce champ contient des caractères interdits', 'provider' => 'table']);
  141 +
125 $validator 142 $validator
126 - ->allowEmpty('code_comptable');  
127 - 143 + ->allowEmpty('code_comptable')
  144 + ->add('code_comptable', 'valid', ['rule' => 'check_string', 'message' => 'Ce champ contient des caractères interdits', 'provider' => 'table']);
  145 +
128 $validator 146 $validator
129 - ->allowEmpty('numero_serie');  
130 - 147 + ->allowEmpty('numero_serie')
  148 + ->add('numero_serie', 'valid', ['rule' => 'check_string', 'message' => 'Ce champ contient des caractères interdits', 'provider' => 'table']);
  149 +
131 $validator 150 $validator
132 - ->allowEmpty('numero_inventaire_organisme');  
133 - 151 + ->allowEmpty('numero_inventaire_organisme')
  152 + ->add('numero_inventaire_organisme', 'valid', ['rule' => 'check_string', 'message' => 'Ce champ contient des caractères interdits', 'provider' => 'table']);
  153 +
134 $validator 154 $validator
135 - ->allowEmpty('numero_inventaire_old');  
136 - 155 + ->allowEmpty('numero_inventaire_old')
  156 + ->add('numero_inventaire_old', 'valid', ['rule' => 'check_string', 'message' => 'Ce champ contient des caractères interdits', 'provider' => 'table']);
  157 +
137 $validator 158 $validator
138 - ->date('date_archivage')  
139 ->allowEmpty('date_archivage'); 159 ->allowEmpty('date_archivage');
140 160
141 $validator 161 $validator
@@ -146,14 +166,17 @@ class MaterielsTable extends Table @@ -146,14 +166,17 @@ class MaterielsTable extends Table
146 ->allowEmpty('lieu_stockage'); 166 ->allowEmpty('lieu_stockage');
147 167
148 $validator 168 $validator
149 - ->allowEmpty('lieu_detail');  
150 - 169 + ->allowEmpty('lieu_detail')
  170 + ->add('lieu_detail', 'valid', ['rule' => 'check_string', 'message' => 'Ce champ contient des caractères interdits', 'provider' => 'table']);
  171 +
151 $validator 172 $validator
152 - ->allowEmpty('nom_responsable');  
153 - 173 + ->allowEmpty('nom_responsable')
  174 + ->add('nom_responsable', 'valid', ['rule' => 'check_string', 'message' => 'Ce champ contient des caractères interdits', 'provider' => 'table']);
  175 +
154 $validator 176 $validator
155 - ->allowEmpty('email_responsable');  
156 - 177 + ->allowEmpty('email_responsable')
  178 + ->email('email_responsable');
  179 +
157 $validator 180 $validator
158 ->allowEmpty('nom_createur'); 181 ->allowEmpty('nom_createur');
159 182
@@ -161,12 +184,50 @@ class MaterielsTable extends Table @@ -161,12 +184,50 @@ class MaterielsTable extends Table
161 ->allowEmpty('nom_modificateur'); 184 ->allowEmpty('nom_modificateur');
162 185
163 $validator 186 $validator
164 - ->date('date_reception')  
165 ->allowEmpty('date_reception'); 187 ->allowEmpty('date_reception');
166 -  
167 return $validator; 188 return $validator;
168 } 189 }
169 190
  191 +
  192 + // autoriser les caracteres habituels standards pour un ou plusieurs MOTs
  193 + // accents + - _ / () . , \s (=space)
  194 + private $string = "a-zA-Z0-9éèàùâêôîôûç%().,\/\s\+\-_";
  195 +
  196 + public function check_string($check) {
  197 + return (bool) preg_match('/^['.$this->string.']*$/', $check);
  198 + }
  199 +
  200 + // autoriser les caracteres spéciaux (pour une PHRASE ou paragraphe) :
  201 + // check_string PLUS ces symboles ====> & * > < ? % ! : , " '
  202 + public function check_string_with_some_special_cars($check) {
  203 + return (bool) preg_match('/^['.$this->string.'?%!:,&*><\-\+\="\''.']*$/', $check);
  204 + }
  205 +
  206 + public function checkStatus($check) {
  207 + return ( isset($check) && in_array($check, $this->ALL_STATUS) );
  208 + }
  209 +
  210 + public function checkAtLeastOneChecked() {
  211 + //return ( 'materiel_administratif' || 'materiel_technique');
  212 + return true;
  213 + }
  214 +
  215 + // return if price >=800€ then must be checked as "administratif"
  216 + public function checkIfIsAdministratifWhenShouldBe() {
  217 + //error_log('test : '.$this->materiel->prix_ht);
  218 +
  219 + //return ! ( isset($this->prix_ht) && $this->prix_ht >= 800 && !$this->materiel_administratif );
  220 + return true;
  221 + }
  222 +
  223 + // return if price <800€ then must NOT be checked as "administratif"
  224 + public function checkIfIsNotAdministratifWhenShouldNotBe() {
  225 + //return ! ( isset($this->prix_ht) && $this->prix_ht < 800 && $this->materiel_administratif );
  226 + return true;
  227 + }
  228 +
  229 +
  230 +
170 /** 231 /**
171 * Returns a rules checker object that will be used for validating 232 * Returns a rules checker object that will be used for validating
172 * application integrity. 233 * application integrity.
src/Model/Table/SuivisTable.php
@@ -49,40 +49,73 @@ class SuivisTable extends Table @@ -49,40 +49,73 @@ class SuivisTable extends Table
49 */ 49 */
50 public function validationDefault(Validator $validator) 50 public function validationDefault(Validator $validator)
51 { 51 {
52 - $validator 52 + $validator
53 ->integer('id') 53 ->integer('id')
54 ->allowEmpty('id', 'create'); 54 ->allowEmpty('id', 'create');
55 - 55 +
56 $validator 56 $validator
57 - ->date('date_controle') 57 + ->integer('materiel_id');
  58 +
  59 + $validator
58 ->allowEmpty('date_controle'); 60 ->allowEmpty('date_controle');
59 61
60 $validator 62 $validator
61 - ->date('date_prochain_controle')  
62 - ->allowEmpty('date_prochain_controle'); 63 + ->allowEmpty('date_prochain_controle')
  64 + ->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']);
63 65
64 $validator 66 $validator
65 - ->allowEmpty('type_intervention'); 67 + ->allowEmpty('type_intervention')
  68 + ->add('type_intervention', 'valid', ['rule' => 'check_string', 'message' => 'Ce champ contient des caractères interdits', 'provider' => 'table']);
66 69
67 $validator 70 $validator
68 - ->allowEmpty('organisme'); 71 + ->notEmpty('organisme')
  72 + ->add('organisme', 'valid', ['rule' => 'check_string', 'message' => 'Ce champ contient des caractères interdits', 'provider' => 'table']);
69 73
70 $validator 74 $validator
71 - ->integer('frequence')  
72 - ->allowEmpty('frequence');  
73 - 75 + ->numeric('frequence', 'Veuillez saisir des chiffres uniquement.')
  76 + ->allowEmpty('frequence')
  77 + ->maxLength('frequence', 8, '8 Chiffres maximum');
  78 +
74 $validator 79 $validator
75 - ->allowEmpty('commentaire'); 80 + ->allowEmpty('commentaire')
  81 + ->add('commentaire', 'valid', ['rule' => ['check_string_with_some_special_cars'], 'message' => 'Ce champ contient des caractères interdits', 'provider' => 'table']);
76 82
77 - $validator  
78 - ->allowEmpty('nom_createur');  
79 -  
80 - $validator  
81 - ->allowEmpty('nom_modificateur');  
82 83
83 return $validator; 84 return $validator;
84 } 85 }
85 86
  87 +
  88 + // autoriser les caracteres habituels standards pour un ou plusieurs MOTs
  89 + // accents + - _ / () . , \s (=space)
  90 + private $string = "a-zA-Z0-9éèàùâêôîôûç%().,\/\s\+\-_";
  91 +
  92 + public function check_string($check) {
  93 + return (bool) preg_match('/^['.$this->string.']*$/', $check);
  94 + }
  95 +
  96 + // autoriser les caracteres spéciaux (pour une PHRASE ou paragraphe) :
  97 + // check_string PLUS ces symboles ====> & * > < ? % ! : , " '
  98 + public function check_string_with_some_special_cars($check) {
  99 + return (bool) preg_match('/^['.$this->string.'?%!:,&*><\-\+\="\''.']*$/', $check);
  100 + }
  101 +
  102 + function checkNextDateControlIsAfterDateControl() {
  103 + /*
  104 + $controle = $this->data [$this->name] ['date_controle'];
  105 + if (empty($controle)) return true;
  106 + $prochainControle = $this->data [$this->name] ['date_prochain_controle'];
  107 + $controle = explode("-", $controle);
  108 + $prochainControle = explode("-", $prochainControle);
  109 + $controle = $controle[2].$controle[1].$controle[0];
  110 + $prochainControle = $prochainControle[2].$prochainControle[1].$prochainControle[0];
  111 + if ($controle > $prochainControle) {
  112 + return false;
  113 + }
  114 + return true;
  115 + */
  116 + return true;
  117 + }
  118 +
86 /** 119 /**
87 * Returns a rules checker object that will be used for validating 120 * Returns a rules checker object that will be used for validating
88 * application integrity. 121 * application integrity.
src/Template/Categories/add.ctp
@@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
5 <h2><i class="icon-plus"></i> Ajouter une Catégorie</h2> 5 <h2><i class="icon-plus"></i> Ajouter une Catégorie</h2>
6 <?php 6 <?php
7 echo $this->Form->input('nom'); 7 echo $this->Form->input('nom');
8 - echo $this->Form->input('sur_categorie_id', ['options' => $surCategories]); 8 + echo $this->Form->input('sur_categorie_id', ['label' => 'Domaine', 'options' => $surCategories]);
9 ?> 9 ?>
10 </fieldset> 10 </fieldset>
11 <?= $this->Form->button(__('Valider')) ?> 11 <?= $this->Form->button(__('Valider')) ?>
src/Template/Categories/edit.ctp
@@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
5 <h2><i class="icon-edit"></i> Editer une Catégorie</h2> 5 <h2><i class="icon-edit"></i> Editer une Catégorie</h2>
6 <?php 6 <?php
7 echo $this->Form->input('nom'); 7 echo $this->Form->input('nom');
8 - echo $this->Form->input('sur_categorie_id', ['options' => $surCategories]); 8 + echo $this->Form->input('sur_categorie_id', ['label' => 'Domaine', 'options' => $surCategories]);
9 ?> 9 ?>
10 </fieldset> 10 </fieldset>
11 <?= $this->Form->button(__('Valider')) ?> 11 <?= $this->Form->button(__('Valider')) ?>
src/Template/Categories/view.ctp
@@ -29,6 +29,33 @@ function displayElement($nom, $valeur) { @@ -29,6 +29,33 @@ function displayElement($nom, $valeur) {
29 ?> 29 ?>
30 30
31 </table> 31 </table>
  32 +
  33 +
  34 + <h3 id="t_suivis" style="cursor: pointer;">
  35 + <i class="icon-chevron-down" style="font-size: 14px;" id="i_suivis"></i>
  36 + <span style="text-decoration: underline;">Sous-Catégorie associé (non implémenter)</span>
  37 + </h3>
  38 + <div id="suivis" style="margin-bottom: 20px;">
  39 +
  40 + <?php if (!empty($sousCategories)) { ?>
  41 + <table>
  42 + <tr>
  43 + <th><?= __('Nom') ?></th>
  44 + <th style="width:50px;"><?= __('Détail') ?></th>
  45 + </tr>
  46 + <?php foreach ($sousCategories as $sous_category): ?>
  47 + <tr>
  48 + <td><?= h($sous_category->nom) ?></td>
  49 +
  50 + <td class="actions">
  51 + <?= $this->Html->link(__('<i class="icon-search"></i>'), ['controller' => 'SousCategories', 'action' => 'view', $sous_category->id], ['escape' => false, 'style' => 'margin:0']) ?>
  52 + </td>
  53 + </tr>
  54 + <?php endforeach; ?>
  55 + </table>
  56 + <?php }else { echo 'Aucune sous-catégorie lié à cette catégorie.'; } ?>
  57 + </div>
  58 +
32 </div> 59 </div>
33 60
34 <div class="actions"> 61 <div class="actions">
src/Template/Emprunts/add.ctp
1 1
2 -<div class="emprunts form large-9 medium-8 columns content"> 2 +<div class="emprunts form">
3 <?= $this->Form->create($emprunt) ?> 3 <?= $this->Form->create($emprunt) ?>
4 <fieldset> 4 <fieldset>
5 - <legend><?= __('Add Emprunt') ?></legend> 5 + <h2><i class="icon-plus"></i> Ajouter un Emprunt</h2>
6 <?php 6 <?php
7 - echo $this->Form->input('materiel_id', ['options' => $materiels]);  
8 - echo $this->Form->input('date_emprunt', ['empty' => true]);  
9 - echo $this->Form->input('date_retour_emprunt', ['empty' => true]);  
10 - echo $this->Form->input('emprunt_interne');  
11 - echo $this->Form->input('laboratoire');  
12 - echo $this->Form->input('e_lieu_stockage');  
13 - echo $this->Form->input('e_lieu_detail');  
14 - echo $this->Form->input('nom_emprunteur');  
15 - echo $this->Form->input('email_emprunteur');  
16 - echo $this->Form->input('tel');  
17 - echo $this->Form->input('commentaire');  
18 - echo $this->Form->input('nom_createur');  
19 - echo $this->Form->input('nom_modificateur'); 7 + echo $this->Form->hidden('materiel_id', ['options' => $materiels, 'default' => $this->passedArgs[0]]);
  8 +
  9 + echo $this->Form->input ('materiel_numero_laboratoire', [
  10 + 'label' => 'N° materiel labo',
  11 + 'default' => $numMateriel,
  12 + 'disabled' => TRUE
  13 + ]);
  14 +
  15 + echo $this->Form->input('date_emprunt', [
  16 + 'type' => 'text',
  17 + 'label' => 'Date de l\'emprunt',
  18 + 'placeholder' => 'Cliquez pour selectionner une date',
  19 + 'class' => 'datepicker'
  20 + ]);
  21 + echo $this->Form->input('date_retour_emprunt', [
  22 + 'type' => 'text',
  23 + 'label' => 'Date de retour',
  24 + 'placeholder' => 'Cliquez pour selectionner une date',
  25 + 'class' => 'datepicker'
  26 + ]);
  27 + echo $this->Form->input('emprunt_interne', [
  28 + 'label' => 'Emprunt interne',
  29 + 'onchange' => 'emprunt_interne_externe();',
  30 + 'default' => true
  31 + ]);
  32 +
  33 + $ne = $emprunt->get('nom_emprunteur');
  34 + if($emprunt->get('emprunt_interne') == 1 && isset($ne)) {
  35 + $nom_emprunteur_int = $emprunt->get('nom_emprunteur');
  36 + $mail_emprunteur_int = $emprunt->get('email_emprunteur');
  37 + }
  38 + if ($emprunt->get('emprunt_interne') == 0 && isset($ne)) {
  39 + $nom_emprunteur_ext = $emprunt->get('nom_emprunteur');
  40 + $mail_emprunteur_ext = $emprunt->get('email_emprunteur');
  41 + }
  42 +
  43 + // EMPRUNT INTERNE
  44 + echo '<div id="interne" style="margin: 0; padding: 0; ' . $disp_interne . ';">';
  45 + echo $this->Form->input ( 'nom_emprunteur_int', [
  46 + 'options' => $utilisateurs,
  47 + 'readonly' => true,
  48 + 'default' => $nom_emprunteur_int,
  49 + 'div' => 'input required',
  50 + 'label' => 'Nom de l\'emprunteur'
  51 + ]);
  52 +
  53 + echo $this->Form->input ( 'email_emprunteur_int', [
  54 + 'label' => 'Email de l\'emprunteur',
  55 + 'default' => $mail_emprunteur_int,
  56 + 'readonly' => true
  57 + ]);
  58 +
  59 + echo $this->Form->input('e_lieu_stockage', [
  60 + 'label' => 'Site',
  61 + 'options' => $sites,
  62 + 'div' => 'input required',
  63 + 'style' => 'width: 100px'
  64 + ]);
  65 + echo $this->Form->input ( 'e_lieu_detail', ['label' => 'Pièce']);
  66 + echo '</div>';
  67 +
  68 +
  69 + // EMPRUNT EXTERNE
  70 + echo '<div id="externe" style="margin: 0; padding: 0; ' . $disp_externe . ';">';
  71 + echo $this->Form->input ( 'nom_emprunteur_ext', [
  72 + 'label' => 'Nom de l\'emprunteur',
  73 + 'default' => $nom_emprunteur_ext
  74 + ]);
  75 +
  76 + echo $this->Form->input ( 'email_emprunteur_ext', [
  77 + 'label' => 'Email de l\'emprunteur',
  78 + 'default' => $mail_emprunteur_ext,
  79 + 'readonly' => false
  80 + ]);
  81 + echo $this->Form->input ( 'laboratoire', [
  82 + 'label' => 'Lieu'
  83 + ]);
  84 + echo $this->Form->input ( 'tel', [
  85 + 'label' => 'Tel'
  86 + ]);
  87 + echo '</div>';
  88 +
  89 + echo $this->Form->input ('commentaire', ['type' => 'textarea']);
  90 +
  91 +
  92 + echo $this->Form->hidden('nom_createur', ['value' => $username])
20 ?> 93 ?>
21 </fieldset> 94 </fieldset>
22 - <?= $this->Form->button(__('Submit')) ?> 95 + <?= $this->Form->button(__('Valider')) ?>
23 <?= $this->Form->end() ?> 96 <?= $this->Form->end() ?>
24 </div> 97 </div>
  98 +
  99 +<div class="actions">
  100 + <?php
  101 + echo $this->element('menu');
  102 + echo $this->element('menu_form', [ 'pluralHumanName' => 'Emprunts' ]);
  103 + ?>
  104 +</div>
25 \ No newline at end of file 105 \ No newline at end of file
src/Template/Emprunts/edit.ctp
1 1
2 -<div class="emprunts form large-9 medium-8 columns content"> 2 +<div class="emprunts form">
3 <?= $this->Form->create($emprunt) ?> 3 <?= $this->Form->create($emprunt) ?>
4 <fieldset> 4 <fieldset>
5 - <legend><?= __('Edit Emprunt') ?></legend> 5 + <h2><i class="icon-edit"></i> Editer un Emprunt</h2>
6 <?php 6 <?php
7 - echo $this->Form->input('materiel_id', ['options' => $materiels]);  
8 - echo $this->Form->input('date_emprunt', ['empty' => true]);  
9 - echo $this->Form->input('date_retour_emprunt', ['empty' => true]);  
10 - echo $this->Form->input('emprunt_interne');  
11 - echo $this->Form->input('laboratoire');  
12 - echo $this->Form->input('e_lieu_stockage');  
13 - echo $this->Form->input('e_lieu_detail');  
14 - echo $this->Form->input('nom_emprunteur');  
15 - echo $this->Form->input('email_emprunteur');  
16 - echo $this->Form->input('tel');  
17 - echo $this->Form->input('commentaire');  
18 - echo $this->Form->input('nom_createur');  
19 - echo $this->Form->input('nom_modificateur'); 7 + echo $this->Form->hidden('materiel_id', ['options' => $materiels, 'default' => $emprunt->get('materiel_id')]);
  8 +
  9 + echo $this->Form->input ('materiel_numero_laboratoire', [
  10 + 'label' => 'N° materiel labo',
  11 + 'default' => $numMateriel,
  12 + 'disabled' => TRUE
  13 + ]);
  14 +
  15 + echo $this->Form->input('date_emprunt', [
  16 + 'type' => 'text',
  17 + 'label' => 'Date de l\'emprunt',
  18 + 'placeholder' => 'Cliquez pour selectionner une date',
  19 + 'class' => 'datepicker'
  20 + ]);
  21 + echo $this->Form->input('date_retour_emprunt', [
  22 + 'type' => 'text',
  23 + 'label' => 'Date de retour',
  24 + 'placeholder' => 'Cliquez pour selectionner une date',
  25 + 'class' => 'datepicker'
  26 + ]);
  27 + echo $this->Form->input('emprunt_interne', [
  28 + 'label' => 'Emprunt interne',
  29 + 'onchange' => 'emprunt_interne_externe();',
  30 + 'default' => true
  31 + ]);
  32 +
  33 + $ne = $emprunt->get('nom_emprunteur');
  34 + if($emprunt->get('emprunt_interne') == 1 && isset($ne)) {
  35 + $nom_emprunteur_int = $emprunt->get('nom_emprunteur');
  36 + $mail_emprunteur_int = $emprunt->get('email_emprunteur');
  37 + }
  38 + if ($emprunt->get('emprunt_interne') == 0 && isset($ne)) {
  39 + $nom_emprunteur_ext = $emprunt->get('nom_emprunteur');
  40 + $mail_emprunteur_ext = $emprunt->get('email_emprunteur');
  41 + }
  42 +
  43 + // EMPRUNT INTERNE
  44 + echo '<div id="interne" style="margin: 0; padding: 0; ' . $disp_interne . ';">';
  45 + echo $this->Form->input ( 'nom_emprunteur_int', [
  46 + 'options' => $utilisateurs,
  47 + 'readonly' => true,
  48 + 'default' => $nom_emprunteur_int,
  49 + 'div' => 'input required',
  50 + 'label' => 'Nom de l\'emprunteur'
  51 + ]);
  52 +
  53 + echo $this->Form->input ( 'email_emprunteur_int', [
  54 + 'label' => 'Email de l\'emprunteur',
  55 + 'default' => $mail_emprunteur_int,
  56 + 'readonly' => true
  57 + ]);
  58 +
  59 + echo $this->Form->input('e_lieu_stockage', [
  60 + 'label' => 'Site',
  61 + 'options' => $sites,
  62 + 'div' => 'input required',
  63 + 'style' => 'width: 100px'
  64 + ]);
  65 + echo $this->Form->input ( 'e_lieu_detail', ['label' => 'Pièce']);
  66 + echo '</div>';
  67 +
  68 +
  69 + // EMPRUNT EXTERNE
  70 + echo '<div id="externe" style="margin: 0; padding: 0; ' . $disp_externe . ';">';
  71 + echo $this->Form->input ( 'nom_emprunteur_ext', [
  72 + 'label' => 'Nom de l\'emprunteur',
  73 + 'default' => $nom_emprunteur_ext
  74 + ]);
  75 +
  76 + echo $this->Form->input ( 'email_emprunteur_ext', [
  77 + 'label' => 'Email de l\'emprunteur',
  78 + 'default' => $mail_emprunteur_ext,
  79 + 'readonly' => false
  80 + ]);
  81 + echo $this->Form->input ( 'laboratoire', [
  82 + 'label' => 'Lieu'
  83 + ]);
  84 + echo $this->Form->input ( 'tel', [
  85 + 'label' => 'Tel'
  86 + ]);
  87 + echo '</div>';
  88 +
  89 + echo $this->Form->input ('commentaire', ['type' => 'textarea']);
  90 +
  91 +
  92 + echo $this->Form->hidden('nom_modificateur', ['value' => $username]);
20 ?> 93 ?>
21 </fieldset> 94 </fieldset>
22 - <?= $this->Form->button(__('Submit')) ?> 95 + <?= $this->Form->button(__('Valider')) ?>
23 <?= $this->Form->end() ?> 96 <?= $this->Form->end() ?>
24 </div> 97 </div>
  98 +
  99 +<div class="actions">
  100 + <?php
  101 + echo $this->element('menu');
  102 + echo $this->element('menu_form', [ 'pluralHumanName' => 'Emprunts' ]);
  103 + ?>
  104 +</div>
25 \ No newline at end of file 105 \ No newline at end of file
src/Template/Emprunts/index.ctp
@@ -50,7 +50,4 @@ @@ -50,7 +50,4 @@
50 50
51 <div class="actions"> 51 <div class="actions">
52 <?php echo $this->element('menu') ?> 52 <?php echo $this->element('menu') ?>
53 - <?php echo $this->element('menu_index',  
54 - [ 'pluralHumanName' => 'Emprunts',  
55 - 'singularHumanName' => 'Emprunt' ]) ?>  
56 </div> 53 </div>
57 \ No newline at end of file 54 \ No newline at end of file
src/Template/Layout/default.ctp
@@ -46,9 +46,8 @@ $cakeDescription = &#39;Labinvent 2.0&#39;; @@ -46,9 +46,8 @@ $cakeDescription = &#39;Labinvent 2.0&#39;;
46 46
47 47
48 <?php 48 <?php
49 - $userName = $username;  
50 - if (isset($userName)) {  
51 - echo 'Bienvenue '.$userName.'<br/>'; 49 + if (isset($username)) {
  50 + echo 'Bienvenue '.$username.'<br/>';
52 echo $this->Html->link('Se déconnecter', ['controller' => 'Users', 'action' => 'logout']); 51 echo $this->Html->link('Se déconnecter', ['controller' => 'Users', 'action' => 'logout']);
53 } 52 }
54 else { 53 else {
@@ -93,7 +92,7 @@ $cakeDescription = &#39;Labinvent 2.0&#39;; @@ -93,7 +92,7 @@ $cakeDescription = &#39;Labinvent 2.0&#39;;
93 </i></td> 92 </i></td>
94 <td id="version"> 93 <td id="version">
95 <!-- VERSION M.m.f.b (version (M)ajeure, version (m)ineure, numero de nouvelle (f)onctionnalite, numero de (b)ugfix) --> 94 <!-- VERSION M.m.f.b (version (M)ajeure, version (m)ineure, numero de nouvelle (f)onctionnalite, numero de (b)ugfix) -->
96 - <font color="black">VERSION 2.0.0 (22/04/2016)</font> 95 + <font color="black">VERSION 2.0.2 (06/05/2016)</font>
97 </td> 96 </td>
98 </tr> 97 </tr>
99 </table> 98 </table>
src/Template/Materiels/add.ctp
1 -<div class="materiels form large-9 medium-8 columns content"> 1 +
  2 +<div class="materiels form">
2 <?= $this->Form->create($materiel) ?> 3 <?= $this->Form->create($materiel) ?>
3 <fieldset> 4 <fieldset>
4 - <legend><?= __('Add Materiel') ?></legend> 5 + <h2><i class="icon-plus"></i> Ajouter un Matériel</h2>
  6 + <?= $this->Form->button(__('Enregistrer')) ?>
  7 +
5 <?php 8 <?php
6 - echo $this->Form->input('designation');  
7 - echo $this->Form->input('sur_categorie_id', ['options' => $surCategories, 'empty' => true]);  
8 - echo $this->Form->input('categorie_id', ['options' => $categories, 'empty' => true]);  
9 - echo $this->Form->input('sous_categorie_id', ['options' => $sousCategories, 'empty' => true]);  
10 - echo $this->Form->input('numero_laboratoire');  
11 - echo $this->Form->input('description');  
12 - echo $this->Form->input('materiel_administratif');  
13 - echo $this->Form->input('materiel_technique');  
14 - echo $this->Form->input('status');  
15 - echo $this->Form->input('date_acquisition', ['empty' => true]);  
16 - echo $this->Form->input('fournisseur');  
17 - echo $this->Form->input('prix_ht');  
18 - echo $this->Form->input('eotp');  
19 - echo $this->Form->input('numero_commande');  
20 - echo $this->Form->input('code_comptable');  
21 - echo $this->Form->input('numero_serie');  
22 - echo $this->Form->input('groupes_thematique_id', ['options' => $groupesThematiques, 'empty' => true]);  
23 - echo $this->Form->input('groupes_metier_id', ['options' => $groupesMetiers, 'empty' => true]);  
24 - echo $this->Form->input('numero_inventaire_organisme');  
25 - echo $this->Form->input('numero_inventaire_old');  
26 - echo $this->Form->input('date_archivage', ['empty' => true]);  
27 - echo $this->Form->input('etiquette');  
28 - echo $this->Form->input('lieu_stockage');  
29 - echo $this->Form->input('lieu_detail');  
30 - echo $this->Form->input('nom_responsable');  
31 - echo $this->Form->input('email_responsable');  
32 - echo $this->Form->input('nom_createur');  
33 - echo $this->Form->input('nom_modificateur');  
34 - echo $this->Form->input('date_reception', ['empty' => true]);  
35 - echo $this->Form->input('organisme_id', ['options' => $organismes, 'empty' => true]);  
36 - echo $this->Form->input('site_id', ['options' => $sites, 'empty' => true]); 9 + echo $this->Form->input('designation', ['label' => 'Désignation']);
  10 + echo $this->Form->input('sur_categorie_id', ['label' => 'Domaine', 'options' => $surCategories, 'empty' => 'Choisir un domaine']);
  11 + echo $this->Form->input('categorie_id', ['label' => 'Catégorie', 'options' => $categories, 'empty' => 'Choisir une catégorie']);
  12 + echo $this->Form->input('sous_categorie_id', ['label' => 'Sous-catégorie', 'options' => $sousCategories, 'empty' => 'Choisir une sous-catégorie']);
  13 +
  14 + echo $this->Form->input('materiel_technique', ['label' => 'Technique']);
  15 + echo $this->Form->input('materiel_administratif', ['label' => 'Inventoriable (>800€)']);
  16 +
  17 + echo $this->Form->input('description', ['label' => 'Description']);
  18 + echo $this->Form->input('etiquette', ['label' => 'Etiquette posée']);
  19 + echo $this->Form->input('site_id', ['options' => $sites, 'empty' => 'Choisir un site']);
  20 +
  21 + echo $this->Form->input('lieu_stockage', ['label' => 'Lieu de stockage (pièce)']);
  22 + echo $this->Form->input('lieu_detail', ['label' => 'Détail lieu de stockage']);
  23 +
  24 + echo $this->Form->input('date_acquisition', ['type' => 'text', 'label' => 'Date de la commande', 'class' => 'datepicker', 'placeholder' => 'Cliquez pour sélectionner une date']);
  25 + 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]);
  26 +
  27 + echo $this->Form->input('numero_serie', ['label' => 'Numéro de série']);
  28 + echo $this->Form->input('groupes_thematique_id', ['label' => 'Groupe thématique', 'options' => $groupesThematiques]);
  29 + echo $this->Form->input('groupes_metier_id', ['label' => 'Groupe métier', 'options' => $groupesMetiers]);
  30 +
  31 + echo $this->Form->input('nom_responsable', [
  32 + 'label' => 'Nom du responsable',
  33 + 'empty' => 'Choisir un utilisateur',
  34 + 'default' => $username,
  35 + 'options' => $utilisateurs
  36 + ]);
  37 + echo $this->Form->input('email_responsable', [
  38 + 'label' => 'Email du responsable',
  39 + 'readonly' => true,
  40 + 'default' => $mail_responsable
  41 + ]);
  42 + echo $this->Form->input('fournisseur', ['label' => 'Fournisseur']);
  43 + echo $this->Form->input('organisme_id', ['options' => $organismes, 'empty' => 'Choisir un organisme']);
  44 + echo $this->Form->input('prix_ht', ['label' => 'Prix HT (€)']);
  45 +
  46 + echo '<div style="border-top: 1px solid #CCC; border-bottom: 1px solid #CCC; margin-bottom: 0; background: #EEE;"><span style="font-size: 9px; color: red;">Partie administrative</span>';
  47 + echo $this->Form->input('eotp', ['label' => 'Centre financier/EOTP']);
  48 + echo $this->Form->input('numero_commande', ['label' => 'Numéro de commande']);
  49 + echo $this->Form->input('code_comptable', ['label' => 'Code comptable']);
  50 + echo $this->Form->input('numero_inventaire_organisme', ['label' => 'N° inventaire organisme']);
  51 + echo $this->Form->input('numero_inventaire_old', ['label' => 'Ancien N° inventaire']);
  52 + echo $this->Form->hidden('nom_createur', ['value' => $username ]);
  53 + echo '</div>';
  54 +
37 ?> 55 ?>
38 </fieldset> 56 </fieldset>
39 - <?= $this->Form->button(__('Submit')) ?> 57 + <?= $this->Form->button(__('Enregistrer')) ?>
40 <?= $this->Form->end() ?> 58 <?= $this->Form->end() ?>
41 </div> 59 </div>
  60 +
  61 +<div class="actions">
  62 + <?php
  63 + echo $this->element('menu');
  64 + echo $this->element('menu_form', [ 'pluralHumanName' => 'Matériels' ]);
  65 + ?>
  66 +</div>
42 \ No newline at end of file 67 \ No newline at end of file
src/Template/Materiels/edit.ctp
1 -<div class="materiels form large-9 medium-8 columns content"> 1 +<?php
  2 +define ( 'IS_CREATED', $materiel->status == 'CREATED' );
  3 +define ( 'IS_VALIDATED', $materiel->status == 'VALIDATED' );
  4 +define ( 'IS_ARCHIVED_OR_TOBE', in_array ( $materiel->status, ['TOBEARCHIVED','ARCHIVED'] ) );
  5 +
  6 +function isReadonlyField($fieldName, $myReadonlyFields) {
  7 + if (! empty ( $myReadonlyFields ) && $myReadonlyFields [0] == '*') {
  8 + $modifiableFields = $myReadonlyFields;
  9 + array_shift ( $modifiableFields );
  10 + return ! in_array ( $fieldName, $modifiableFields );
  11 + }
  12 + return in_array ( $fieldName, $myReadonlyFields );
  13 +}
  14 +
  15 +$administrationData = array (
  16 + 'eotp',
  17 + 'numero_commande',
  18 + 'code_comptable',
  19 + 'numero_inventaire_organisme',
  20 + 'numero_inventaire_old'
  21 +);
  22 +
  23 +$myReadonlyFields = array ();
  24 +if (IS_VALIDATED)
  25 + // can only modify some fields
  26 + $myReadonlyFields = array_merge (
  27 + array (
  28 + 'sur_categorie_id',
  29 + 'categorie_id',
  30 + 'sous_categorie_id',
  31 + 'materiel_administratif',
  32 + 'materiel_technique',
  33 + 'site_id',
  34 + 'date_acquisition',
  35 + 'date_reception',
  36 + 'nom_responsable',
  37 + 'fournisseur',
  38 + 'organisme_id',
  39 + 'prix_ht'
  40 + ),
  41 + $administrationData
  42 + );
  43 +
  44 + elseif (IS_ARCHIVED_OR_TOBE) {
  45 + $myReadonlyFields = array ('*','status');
  46 + }
  47 +?>
  48 +
  49 +
  50 +
  51 +<div class="materiels form">
2 <?= $this->Form->create($materiel) ?> 52 <?= $this->Form->create($materiel) ?>
3 <fieldset> 53 <fieldset>
4 - <legend><?= __('Edit Materiel') ?></legend> 54 + <h2><i class="icon-edit"></i> Editer un Matériel</h2>
  55 + <?= $this->Form->button(__('Enregistrer')) ?>
  56 +
5 <?php 57 <?php
6 - echo $this->Form->input('designation');  
7 - echo $this->Form->input('sur_categorie_id', ['options' => $surCategories, 'empty' => true]);  
8 - echo $this->Form->input('categorie_id', ['options' => $categories, 'empty' => true]);  
9 - echo $this->Form->input('sous_categorie_id', ['options' => $sousCategories, 'empty' => true]);  
10 - echo $this->Form->input('numero_laboratoire');  
11 - echo $this->Form->input('description');  
12 - echo $this->Form->input('materiel_administratif');  
13 - echo $this->Form->input('materiel_technique');  
14 - echo $this->Form->input('status');  
15 - echo $this->Form->input('date_acquisition', ['empty' => true]);  
16 - echo $this->Form->input('fournisseur');  
17 - echo $this->Form->input('prix_ht');  
18 - echo $this->Form->input('eotp');  
19 - echo $this->Form->input('numero_commande');  
20 - echo $this->Form->input('code_comptable');  
21 - echo $this->Form->input('numero_serie');  
22 - echo $this->Form->input('groupes_thematique_id', ['options' => $groupesThematiques, 'empty' => true]);  
23 - echo $this->Form->input('groupes_metier_id', ['options' => $groupesMetiers, 'empty' => true]);  
24 - echo $this->Form->input('numero_inventaire_organisme');  
25 - echo $this->Form->input('numero_inventaire_old');  
26 - echo $this->Form->input('date_archivage', ['empty' => true]);  
27 - echo $this->Form->input('etiquette');  
28 - echo $this->Form->input('lieu_stockage');  
29 - echo $this->Form->input('lieu_detail');  
30 - echo $this->Form->input('nom_responsable');  
31 - echo $this->Form->input('email_responsable');  
32 - echo $this->Form->input('nom_createur');  
33 - echo $this->Form->input('nom_modificateur');  
34 - echo $this->Form->input('date_reception', ['empty' => true]);  
35 - echo $this->Form->input('organisme_id', ['options' => $organismes, 'empty' => true]);  
36 - echo $this->Form->input('site_id', ['options' => $sites, 'empty' => true]); 58 + echo $this->Form->input('designation', [
  59 + 'label' => 'Désignation',
  60 + 'disabled' => isReadonlyField('designation', $myReadonlyFields)
  61 +
  62 + ]);
  63 +
  64 + echo $this->Form->input('sur_categorie_id', [
  65 + 'label' => 'Domaine',
  66 + 'options' => $surCategories,
  67 + 'empty' => 'Choisir un domaine',
  68 + 'readonly' => isReadonlyField ( 'sur_categorie_id', $myReadonlyFields ),
  69 + 'disabled' => isReadonlyField ( 'sur_categorie_id', $myReadonlyFields )
  70 +
  71 + ]);
  72 + echo $this->Form->input('categorie_id', [
  73 + 'label' => 'Catégorie',
  74 + 'options' => $categories,
  75 + 'empty' => 'Choisir une catégorie',
  76 + 'disabled' => isReadonlyField('categorie_id', $myReadonlyFields)
  77 + ]);
  78 + echo $this->Form->input('sous_categorie_id', [
  79 + 'label' => 'Sous-catégorie',
  80 + 'options' => $sousCategories,
  81 + 'empty' => 'Choisir une sous-catégorie',
  82 + 'disabled' => isReadonlyField('sous_categorie_id', $myReadonlyFields)
  83 + ]);
  84 +
  85 + echo $this->Form->input('materiel_technique', [
  86 + 'label' => 'Technique',
  87 + 'disabled' => isReadonlyField('materiel_technique', $myReadonlyFields)
  88 + ]);
  89 + echo $this->Form->input('materiel_administratif', [
  90 + 'label' => 'Inventoriable (>800€)',
  91 + 'disabled' => isReadonlyField('materiel_administratif', $myReadonlyFields)
  92 + ]);
  93 +
  94 + echo $this->Form->input('description', [
  95 + 'label' => 'Description',
  96 + 'disabled' => isReadonlyField('description', $myReadonlyFields)
  97 + ]);
  98 + echo $this->Form->input('etiquette', [
  99 + 'label' => 'Etiquette posée',
  100 + 'disabled' => isReadonlyField('etiquette', $myReadonlyFields)
  101 + ]);
  102 + echo $this->Form->input('site_id', [
  103 + 'options' => $sites,
  104 + 'empty' => 'Choisir un site',
  105 + 'disabled' => isReadonlyField('site_id', $myReadonlyFields)
  106 + ]);
  107 +
  108 + echo $this->Form->input('lieu_stockage', ['label' => 'Lieu de stockage (pièce)']);
  109 + echo $this->Form->input('lieu_detail', ['label' => 'Détail lieu de stockage']);
  110 +
  111 + echo $this->Form->input('date_acquisition', [
  112 + 'type' => 'text',
  113 + 'label' => 'Date de la commande',
  114 + 'class' => 'datepicker',
  115 + 'placeholder' => 'Cliquez pour sélectionner une date',
  116 + 'disabled' => isReadonlyField('date_acquisition', $myReadonlyFields),
  117 + ]);
  118 + echo $this->Form->input('date_reception', [
  119 + 'type' => 'text',
  120 + 'label' => 'Date de réception',
  121 + 'class' => 'datepicker',
  122 + 'placeholder' => 'A éditer lors de la réception uniquement.',
  123 + 'disabled' => isReadonlyField('date_reception', $myReadonlyFields),
  124 + 'empty' => true]);
  125 +
  126 + echo $this->Form->input('status', ['label' => 'Statut', 'options' => [
  127 + 'CREATED' => 'CREATED',
  128 + 'VALIDATED' => 'VALIDATED',
  129 + 'TOBEARCHIVED' => 'TOBEARCHIVED',
  130 + 'ARCHIVED' => 'ARCHIVED']]);
  131 +
  132 + echo $this->Form->input('numero_serie', [
  133 + 'label' => 'Numéro de série',
  134 + 'disabled' => isReadonlyField('numero_serie', $myReadonlyFields)
  135 + ]);
  136 + echo $this->Form->input('groupes_thematique_id', [
  137 + 'label' => 'Groupe thématique',
  138 + 'disabled' => isReadonlyField('groupes_thematique_id', $myReadonlyFields),
  139 + 'options' => $groupesThematiques]);
  140 + echo $this->Form->input('groupes_metier_id', [
  141 + 'label' => 'Groupe métier',
  142 + 'disabled' => isReadonlyField('groupes_metier_id', $myReadonlyFields),
  143 + 'options' => $groupesMetiers]);
  144 +
  145 +
  146 + echo $this->Form->input('nom_responsable', [
  147 + 'label' => 'Nom du responsable',
  148 + 'disabled' => isReadonlyField('nom_responsable', $myReadonlyFields),
  149 + 'empty' => 'Choisir un utilisateur',
  150 + 'default' => $username,
  151 + 'options' => $utilisateurs
  152 + ]);
  153 + if(isset($nom_ancien_responsable)){
  154 + echo $this->Form->input ('nom_ancien_responsable', [
  155 + 'label' => 'Nom ancien responsable',
  156 + 'readonly' => true,
  157 + 'default' => $nom_ancien_responsable
  158 + ]);
  159 + }
  160 + echo $this->Form->input('email_responsable', [
  161 + 'label' => 'Email du responsable',
  162 + 'readonly' => true,
  163 + 'default' => $mail_responsable
  164 + ]);
  165 +
  166 +
  167 + echo $this->Form->input('fournisseur', [
  168 + 'label' => 'Fournisseur',
  169 + 'disabled' => isReadonlyField('email_responsable', $myReadonlyFields)
  170 + ]);
  171 + echo $this->Form->input('organisme_id', [
  172 + 'options' => $organismes,
  173 + 'disabled' => isReadonlyField('organisme_id', $myReadonlyFields),
  174 + 'empty' => 'Choisir un organisme'
  175 + ]);
  176 + echo $this->Form->input('prix_ht', [
  177 + 'label' => 'Prix HT (€)',
  178 + 'disabled' => isReadonlyField('prix_ht', $myReadonlyFields)
  179 + ]);
  180 +
  181 +
  182 + echo '<div style="border-top: 1px solid #CCC; border-bottom: 1px solid #CCC; margin-bottom: 0; background: #EEE;"><span style="font-size: 9px; color: red;">Partie administrative</span>';
  183 + echo $this->Form->input('eotp', [
  184 + 'label' => 'Centre financier/EOTP',
  185 + 'disabled' => isReadonlyField('eotp', $myReadonlyFields)
  186 + ]);
  187 + echo $this->Form->input('numero_commande', [
  188 + 'label' => 'Numéro de commande',
  189 + 'disabled' => isReadonlyField('numero_commande', $myReadonlyFields)
  190 + ]);
  191 + echo $this->Form->input('code_comptable', [
  192 + 'label' => 'Code comptable',
  193 + 'disabled' => isReadonlyField('code_comptable', $myReadonlyFields)
  194 + ]);
  195 + echo $this->Form->input('numero_inventaire_organisme', [
  196 + 'label' => 'N° inventaire organisme',
  197 + 'disabled' => isReadonlyField('numero_inventaire_organisme', $myReadonlyFields)
  198 + ]);
  199 + echo $this->Form->input('numero_inventaire_old', [
  200 + 'label' => 'Ancien N° inventaire',
  201 + 'disabled' => isReadonlyField('numero_inventaire_old', $myReadonlyFields)
  202 + ]);
  203 + echo $this->Form->hidden('nom_modificateur', ['value' => $username ]);
  204 + echo '</div>';
  205 +
37 ?> 206 ?>
38 </fieldset> 207 </fieldset>
39 - <?= $this->Form->button(__('Submit')) ?> 208 + <?= $this->Form->button(__('Enregistrer')) ?>
40 <?= $this->Form->end() ?> 209 <?= $this->Form->end() ?>
41 </div> 210 </div>
  211 +
  212 +<div class="actions">
  213 + <?php
  214 + echo $this->element('menu');
  215 + echo $this->element('menu_form', [ 'pluralHumanName' => 'Matériels' ]);
  216 + ?>
  217 +</div>
  218 +
src/Template/Materiels/view.ctp
@@ -20,8 +20,33 @@ function displayElement($nom, $valeur) { @@ -20,8 +20,33 @@ function displayElement($nom, $valeur) {
20 <?php 20 <?php
21 echo $this->Html->link(__('<i class="icon-pencil"></i> Editer ce matériel'), 21 echo $this->Html->link(__('<i class="icon-pencil"></i> Editer ce matériel'),
22 ['action' => 'edit', $materiel->id], 22 ['action' => 'edit', $materiel->id],
23 - ['escape' => false,'onclick' => 'return true;']  
24 - ); 23 + ['escape' => false,
  24 + 'onclick' => 'return true;',
  25 + 'style' => 'margin-right: 10px'
  26 + ]);
  27 +
  28 + if($materiel->status == 'VALIDATED') {
  29 + // BOUTON NOUVEAU SUIVI
  30 + echo $this->Html->link('<i class="icon-plus"></i> Nouv. Suivi',
  31 + ['controller' => 'suivis',
  32 + 'action' => 'add',
  33 + $materiel->id],
  34 + ['title' => 'Faire un nouveau suivi de ce matériel',
  35 + 'style' => 'margin-right: 10px',
  36 + 'escape' => false]
  37 + ); // End link
  38 +
  39 + // BOUTON NOUVEL EMPRUNT
  40 + echo $this->Html->link('<i class="icon-plus"></i> Nouv. Emprunt',
  41 + ['controller' => 'emprunts',
  42 + 'action' => 'add',
  43 + $materiel->id],
  44 + ['title' => 'Faire un nouvel emprunt de ce matériel',
  45 + 'style' => 'margin-right: 10px',
  46 + 'escape' => false]
  47 + ); // End link
  48 + }
  49 +
25 ?> 50 ?>
26 </div> 51 </div>
27 52
src/Template/Pages/home.ctp
@@ -3,8 +3,8 @@ @@ -3,8 +3,8 @@
3 use Cake\Core\Configure; 3 use Cake\Core\Configure;
4 4
5 //if (Configure::read('debug')) { 5 //if (Configure::read('debug')) {
6 -if ($this->request->session()->read('debug')) {  
7 - include("home_debug.ctp"); 6 +if ($this->request->session()->read('install')) {
  7 + include("home_install.ctp");
8 } 8 }
9 else { 9 else {
10 include("home_app.ctp"); 10 include("home_app.ctp");
src/Template/Pages/home_app.ctp
@@ -5,19 +5,10 @@ @@ -5,19 +5,10 @@
5 <p>Bienvenue sur l'inventaire administratif et technique de l'<b>IRAP</b>.</p> 5 <p>Bienvenue sur l'inventaire administratif et technique de l'<b>IRAP</b>.</p>
6 6
7 <?php 7 <?php
8 - $userName = $username;  
9 - if (!isset($userName)) {  
10 - ?>  
11 - <p>Vous n'êtes pas connecté, veuillez vous authentifier.</p>  
12 -  
13 - <?php  
14 - }  
15 - else {  
16 //Utilisateur connecté 8 //Utilisateur connecté
17 - echo '<p>Vous êtes connecté en tant que <b>' . $userName . '</b> '; 9 + echo '<p>Vous êtes connecté en tant que <b>' . $username . '</b> ';
18 echo 'et avec le niveau d\'authentification <b>inconnu sans les ACL en place, bientôt...</b>'; 10 echo 'et avec le niveau d\'authentification <b>inconnu sans les ACL en place, bientôt...</b>';
19 echo '<p>'; 11 echo '<p>';
20 - }  
21 ?> 12 ?>
22 13
23 </div> 14 </div>
src/Template/Pages/home_debug.ctp renamed to src/Template/Pages/home_install.ctp
@@ -25,7 +25,7 @@ $this-&gt;layout = false; @@ -25,7 +25,7 @@ $this-&gt;layout = false;
25 <head> 25 <head>
26 <?= $this->Html->charset() ?> 26 <?= $this->Html->charset() ?>
27 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 27 <meta name="viewport" content="width=device-width, initial-scale=1.0">
28 - <title>HOME_DEBUG</title> 28 + <title>Mode install</title>
29 <?= $this->Html->meta('icon') ?> 29 <?= $this->Html->meta('icon') ?>
30 <?= $this->Html->css('base.css') ?> 30 <?= $this->Html->css('base.css') ?>
31 <?= $this->Html->css('cake.css') ?> 31 <?= $this->Html->css('cake.css') ?>
@@ -40,7 +40,7 @@ $this-&gt;layout = false; @@ -40,7 +40,7 @@ $this-&gt;layout = false;
40 <div id="content"> 40 <div id="content">
41 <div class="row"> 41 <div class="row">
42 <div class="columns large-12 ctp-warning checks", style="text-align: center"> 42 <div class="columns large-12 ctp-warning checks", style="text-align: center">
43 - <?php echo $this->Form->postLink("Stop Debug mode", ['controller' => 'materiels', 'action'=>'debugOff'], ['confirm' => __('Êtes-vous sur ?')]); ?> 43 + <?php echo $this->Form->postLink("Stop Install mode", ['controller' => 'materiels', 'action'=>'installOff'], ['confirm' => __('Êtes-vous sur ?')]); ?>
44 </div> 44 </div>
45 <?php Debugger::checkSecurityKeys(); ?> 45 <?php Debugger::checkSecurityKeys(); ?>
46 <div id="url-rewriting-warning" class="columns large-12 url-rewriting checks"> 46 <div id="url-rewriting-warning" class="columns large-12 url-rewriting checks">
src/Template/Pages/tools.ctp
@@ -49,10 +49,6 @@ @@ -49,10 +49,6 @@
49 echo '<tr><td>'; 49 echo '<tr><td>';
50 echo $this->Html->link('Gérer les groupes métiers', ['controller' => 'groupes_metiers', 'sort' => 'nom']); 50 echo $this->Html->link('Gérer les groupes métiers', ['controller' => 'groupes_metiers', 'sort' => 'nom']);
51 echo '</td></tr>'; 51 echo '</td></tr>';
52 -  
53 - echo '<tr><td>';  
54 - echo $this->Html->link('Gérer les fichiers', ['controller' => 'documents', 'sort' => 'nom']);  
55 - echo '</td></tr>';  
56 52
57 echo '<tr><td>'; 53 echo '<tr><td>';
58 echo $this->Html->link('Export de la liste des materiels actifs (format CSV)', ['controller' => 'materiels', 'action' => 'export']); 54 echo $this->Html->link('Export de la liste des materiels actifs (format CSV)', ['controller' => 'materiels', 'action' => 'export']);
@@ -66,11 +62,11 @@ @@ -66,11 +62,11 @@
66 * Mode debug 62 * Mode debug
67 */ 63 */
68 echo '<tr><td>'; 64 echo '<tr><td>';
69 - if ($this->request->session()->read('debug')) {  
70 - echo $this->Form->postLink("Stopper le mode DEBUG", ['controller' => 'materiels', 'action'=>'debugOff'], ['confirm' => __('Êtes-vous sur ?')]); 65 + if ($this->request->session()->read('install')) {
  66 + echo $this->Form->postLink("Stopper le mode INSTALL", ['controller' => 'materiels', 'action'=>'installOff'], ['confirm' => __('Êtes-vous sur ?')]);
71 } 67 }
72 else { 68 else {
73 - echo $this->Form->postLink("Passer en mode DEBUG", ['controller' => 'materiels', 'action'=>'debugOn'], ['confirm' => __('Êtes-vous sur ?')]); 69 + echo $this->Form->postLink("Passer en mode INSTALL", ['controller' => 'materiels', 'action'=>'installOn'], ['confirm' => __('Êtes-vous sur ?')]);
74 } 70 }
75 echo '</td></tr>'; 71 echo '</td></tr>';
76 72
src/Template/SousCategories/add.ctp
@@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
5 <h2><i class="icon-plus"></i> Ajouter une Sous-catégorie</h2> 5 <h2><i class="icon-plus"></i> Ajouter une Sous-catégorie</h2>
6 <?php 6 <?php
7 echo $this->Form->input('nom'); 7 echo $this->Form->input('nom');
8 - echo $this->Form->input('categorie_id', ['options' => $categories]); 8 + echo $this->Form->input('categorie_id', ['label' => 'Catégorie', 'options' => $categories]);
9 ?> 9 ?>
10 </fieldset> 10 </fieldset>
11 <?= $this->Form->button(__('Valider')) ?> 11 <?= $this->Form->button(__('Valider')) ?>
src/Template/SousCategories/edit.ctp
@@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
5 <h2><i class="icon-edit"></i> Editer une Sous-catégorie</h2> 5 <h2><i class="icon-edit"></i> Editer une Sous-catégorie</h2>
6 <?php 6 <?php
7 echo $this->Form->input('nom'); 7 echo $this->Form->input('nom');
8 - echo $this->Form->input('categorie_id', ['options' => $categories]); 8 + echo $this->Form->input('categorie_id', ['label' => 'Catégorie', 'options' => $categories]);
9 ?> 9 ?>
10 </fieldset> 10 </fieldset>
11 <?= $this->Form->button(__('Valider')) ?> 11 <?= $this->Form->button(__('Valider')) ?>
src/Template/Suivis/add.ctp
1 1
2 -<div class="suivis form large-9 medium-8 columns content"> 2 +<div class="suivis form">
3 <?= $this->Form->create($suivi) ?> 3 <?= $this->Form->create($suivi) ?>
4 <fieldset> 4 <fieldset>
5 - <legend><?= __('Add Suivi') ?></legend> 5 + <h2><i class="icon-plus"></i> Ajouter un suivi</h2>
6 <?php 6 <?php
7 - echo $this->Form->input('materiel_id', ['options' => $materiels]);  
8 - echo $this->Form->input('date_controle', ['empty' => true]);  
9 - echo $this->Form->input('date_prochain_controle', ['empty' => true]);  
10 - echo $this->Form->input('type_intervention');  
11 - echo $this->Form->input('organisme');  
12 - echo $this->Form->input('frequence');  
13 - echo $this->Form->input('commentaire');  
14 - echo $this->Form->input('nom_createur');  
15 - echo $this->Form->input('nom_modificateur'); 7 + echo $this->Form->hidden('materiel_id', ['options' => $materiels, 'default' => $this->passedArgs[0]]);
  8 +
  9 + echo $this->Form->input ('materiel_numero_laboratoire', [
  10 + 'label' => 'N° materiel labo',
  11 + 'default' => $numMateriel,
  12 + 'disabled' => TRUE
  13 + ]);
  14 +
  15 +
  16 + echo $this->Form->input('type_intervention', [
  17 + 'label' => 'Type d\'intervention',
  18 + 'options' => $typeSuivis
  19 + ]);
  20 +
  21 + echo $this->Form->input('date_controle', [
  22 + 'type' => 'text',
  23 + 'label' => 'Date intervention',
  24 + 'placeholder' => 'Cliquez pour selectionner une date',
  25 + 'class' => 'datepicker',
  26 + 'default' => NULL
  27 + ]);
  28 +
  29 + echo '<table id="tableAlignementFrequence"><tr><td>';
  30 + echo $this->Form->input('frequence', [
  31 + 'div' => 'A',
  32 + 'type' => 'text',
  33 + 'label' => 'Fréquence',
  34 + 'placeholder' => ''
  35 + ]);
  36 + echo '</td><td>';
  37 + echo $this->Form->input ('type_frequence', [
  38 + 'label' => false,
  39 + 'div' => 'typeFrequence',
  40 + 'options' => ['/ Jours', '/ Semaines', '/ Mois', '/ Ans']
  41 + ]);
  42 + echo '</td></tr></table>';
  43 +
  44 + echo $this->Form->input('date_prochain_controle', [
  45 + 'type' => 'text',
  46 + 'label' => 'Date prochaine intervention',
  47 + 'placeholder' => 'Cliquez pour selectionner une date',
  48 + 'class' => 'datepicker'
  49 + ]);
  50 + echo $this->Form->input('organisme', ['label' => 'Prestataire']);
  51 + echo $this->Form->input('commentaire', ['type' => 'textarea']);
  52 +
  53 + echo $this->Form->hidden('nom_createur', ['value' => $username ]);
16 ?> 54 ?>
17 </fieldset> 55 </fieldset>
18 - <?= $this->Form->button(__('Submit')) ?> 56 + <?= $this->Form->button(__('Valider')) ?>
19 <?= $this->Form->end() ?> 57 <?= $this->Form->end() ?>
20 </div> 58 </div>
  59 +
  60 +<div class="actions">
  61 + <?php
  62 + echo $this->element('menu');
  63 + echo $this->element('menu_form', [ 'pluralHumanName' => 'Suivis' ]);
  64 + ?>
  65 +</div>
21 \ No newline at end of file 66 \ No newline at end of file
src/Template/Suivis/edit.ctp
1 1
2 -<div class="suivis form large-9 medium-8 columns content"> 2 +<div class="suivis form">
3 <?= $this->Form->create($suivi) ?> 3 <?= $this->Form->create($suivi) ?>
4 <fieldset> 4 <fieldset>
5 - <legend><?= __('Edit Suivi') ?></legend> 5 + <h2><i class="icon-edit"></i> Editer un suivi</h2>
6 <?php 6 <?php
7 - echo $this->Form->input('materiel_id', ['options' => $materiels]);  
8 - echo $this->Form->input('date_controle', ['empty' => true]);  
9 - echo $this->Form->input('date_prochain_controle', ['empty' => true]);  
10 - echo $this->Form->input('type_intervention');  
11 - echo $this->Form->input('organisme');  
12 - echo $this->Form->input('frequence');  
13 - echo $this->Form->input('commentaire');  
14 - echo $this->Form->input('nom_createur');  
15 - echo $this->Form->input('nom_modificateur'); 7 +
  8 + echo $this->Form->hidden('materiel_id', ['options' => $materiels, 'default' => $suivi->get('materiel_id')]);
  9 +
  10 + echo $this->Form->input ('materiel_numero_laboratoire', [
  11 + 'label' => 'N° materiel labo',
  12 + 'default' => $numMateriel,
  13 + 'disabled' => TRUE
  14 + ]);
  15 +
  16 + echo $this->Form->input('type_intervention', [
  17 + 'label' => 'Type d\'intervention',
  18 + 'options' => $typeSuivis
  19 + ]);
  20 +
  21 + echo $this->Form->input('date_controle', [
  22 + 'type' => 'text',
  23 + 'label' => 'Date intervention',
  24 + 'placeholder' => 'Cliquez pour selectionner une date',
  25 + 'class' => 'datepicker',
  26 + 'default' => NULL
  27 + ]);
  28 +
  29 + echo '<table id="tableAlignementFrequence"><tr><td>';
  30 + echo $this->Form->input('frequence', [
  31 + 'div' => 'A',
  32 + 'type' => 'text',
  33 + 'label' => 'Fréquence',
  34 + 'placeholder' => ''
  35 + ]);
  36 + echo '</td><td>';
  37 + echo $this->Form->input ('type_frequence', [
  38 + 'label' => false,
  39 + 'div' => 'typeFrequence',
  40 + 'options' => ['/ Jours', '/ Semaines', '/ Mois', '/ Ans']
  41 + ]);
  42 + echo '</td></tr></table>';
  43 +
  44 + echo $this->Form->input('date_prochain_controle', [
  45 + 'type' => 'text',
  46 + 'label' => 'Date prochaine intervention',
  47 + 'placeholder' => 'Cliquez pour selectionner une date',
  48 + 'class' => 'datepicker'
  49 + ]);
  50 + echo $this->Form->input('organisme', ['label' => 'Prestataire']);
  51 + echo $this->Form->input('commentaire', ['type' => 'textarea']);
  52 +
  53 + echo $this->Form->hidden('nom_modificateur', ['value' => $username ]);
16 ?> 54 ?>
17 </fieldset> 55 </fieldset>
18 - <?= $this->Form->button(__('Submit')) ?> 56 + <?= $this->Form->button(__('Valider')) ?>
19 <?= $this->Form->end() ?> 57 <?= $this->Form->end() ?>
20 </div> 58 </div>
  59 +
  60 +<div class="actions">
  61 + <?php
  62 + echo $this->element('menu');
  63 + echo $this->element('menu_form', [ 'pluralHumanName' => 'Suivis' ]);
  64 + ?>
  65 +</div>
21 \ No newline at end of file 66 \ No newline at end of file
src/Template/Suivis/index.ctp
@@ -45,7 +45,4 @@ @@ -45,7 +45,4 @@
45 45
46 <div class="actions"> 46 <div class="actions">
47 <?php echo $this->element('menu') ?> 47 <?php echo $this->element('menu') ?>
48 - <?php echo $this->element('menu_index',  
49 - [ 'pluralHumanName' => 'Suivis',  
50 - 'singularHumanName' => 'Suivi' ]) ?>  
51 </div> 48 </div>
52 \ No newline at end of file 49 \ No newline at end of file
src/Template/SurCategories/view.ctp
@@ -29,6 +29,34 @@ function displayElement($nom, $valeur) { @@ -29,6 +29,34 @@ function displayElement($nom, $valeur) {
29 ?> 29 ?>
30 30
31 </table> 31 </table>
  32 +
  33 +
  34 + <h3 id="t_suivis" style="cursor: pointer;">
  35 + <i class="icon-chevron-down" style="font-size: 14px;" id="i_suivis"></i>
  36 + <span style="text-decoration: underline;">Catégorie associé (non implémenter)</span>
  37 + </h3>
  38 + <div id="suivis" style="margin-bottom: 20px;">
  39 +
  40 + <?php if (!empty($categories)) { ?>
  41 + <table>
  42 + <tr>
  43 + <th><?= __('Nom') ?></th>
  44 + <th style="width:50px;"><?= __('Détail') ?></th>
  45 + </tr>
  46 + <?php foreach ($categories as $category): ?>
  47 + <tr>
  48 + <td><?= h($category->nom) ?></td>
  49 +
  50 + <td class="actions">
  51 + <?= $this->Html->link(__('<i class="icon-search"></i>'), ['controller' => 'Categories', 'action' => 'view', $category->id], ['escape' => false, 'style' => 'margin:0']) ?>
  52 + </td>
  53 + </tr>
  54 + <?php endforeach; ?>
  55 + </table>
  56 + <?php }else { echo 'Aucune catégorie lié à ce domaine.'; } ?>
  57 + </div>
  58 +
  59 +
32 </div> 60 </div>
33 61
34 <div class="actions"> 62 <div class="actions">
src/Template/Users/add.ctp
1 1
2 -<div class="users form large-9 medium-8 columns content"> 2 +<div class="utilisateurs form">
3 <?= $this->Form->create($user) ?> 3 <?= $this->Form->create($user) ?>
4 <fieldset> 4 <fieldset>
5 - <legend><?= __('Ajouter un utilisateur') ?></legend> 5 + <h2><i class="icon-plus"></i> Ajouter un utilisateur</h2>
6 <?php 6 <?php
7 echo $this->Form->input('nom'); 7 echo $this->Form->input('nom');
8 echo $this->Form->input('username'); 8 echo $this->Form->input('username');
@@ -11,9 +11,16 @@ @@ -11,9 +11,16 @@
11 echo $this->Form->input('role', [ 11 echo $this->Form->input('role', [
12 'options' => ['Super Administrateur' => 'Super Administrateur', 'Administration Plus' => 'Administration Plus', 'Administration' => 'Administration', 'Responsable' => 'Responsable', 'Utilisateur' => 'Utilisateur'] 12 'options' => ['Super Administrateur' => 'Super Administrateur', 'Administration Plus' => 'Administration Plus', 'Administration' => 'Administration', 'Responsable' => 'Responsable', 'Utilisateur' => 'Utilisateur']
13 ]); 13 ]);
14 - echo $this->Form->input('groupes_metier_id', ['options' => $groupesMetiers, 'empty' => true]); 14 + echo $this->Form->input('groupes_metier_id', ['label' => 'Groupe métier', 'options' => $groupesMetiers, 'empty' => true]);
15 ?> 15 ?>
16 </fieldset> 16 </fieldset>
17 - <?= $this->Form->button(__('Ajouter')) ?> 17 + <?= $this->Form->button(__('Valider')) ?>
18 <?= $this->Form->end() ?> 18 <?= $this->Form->end() ?>
19 </div> 19 </div>
  20 +
  21 +<div class="actions">
  22 + <?php
  23 + echo $this->element('menu');
  24 + echo $this->element('menu_form', [ 'pluralHumanName' => 'Utilisateurs' ]);
  25 + ?>
  26 +</div>
20 \ No newline at end of file 27 \ No newline at end of file
src/Template/Users/edit.ctp
1 -<nav class="large-3 medium-4 columns" id="actions-sidebar">  
2 - <ul class="side-nav">  
3 - <li class="heading"><?= __('Actions') ?></li>  
4 - <li><?= $this->Form->postLink(  
5 - __('Delete'),  
6 - ['action' => 'delete', $user->id],  
7 - ['confirm' => __('Are you sure you want to delete # {0}?', $user->id)]  
8 - )  
9 - ?></li>  
10 - <li><?= $this->Html->link(__('List Users'), ['action' => 'index']) ?></li>  
11 - <li><?= $this->Html->link(__('List Groupes Metiers'), ['controller' => 'GroupesMetiers', 'action' => 'index']) ?></li>  
12 - <li><?= $this->Html->link(__('New Groupes Metier'), ['controller' => 'GroupesMetiers', 'action' => 'add']) ?></li>  
13 - </ul>  
14 -</nav>  
15 -<div class="users form large-9 medium-8 columns content"> 1 +
  2 +<div class="utilisateurs form">
16 <?= $this->Form->create($user) ?> 3 <?= $this->Form->create($user) ?>
17 <fieldset> 4 <fieldset>
18 - <legend><?= __('Edit User') ?></legend> 5 + <h2><i class="icon-edit"></i> Editer un utilisateur</h2>
19 <?php 6 <?php
20 echo $this->Form->input('nom'); 7 echo $this->Form->input('nom');
21 echo $this->Form->input('username'); 8 echo $this->Form->input('username');
22 echo $this->Form->input('password'); 9 echo $this->Form->input('password');
23 echo $this->Form->input('email'); 10 echo $this->Form->input('email');
24 - echo $this->Form->input('role');  
25 - echo $this->Form->input('groupes_metier_id', ['options' => $groupesMetiers, 'empty' => true]); 11 + echo $this->Form->input('role', [
  12 + 'options' => ['Super Administrateur' => 'Super Administrateur', 'Administration Plus' => 'Administration Plus', 'Administration' => 'Administration', 'Responsable' => 'Responsable', 'Utilisateur' => 'Utilisateur']
  13 + ]);
  14 + echo $this->Form->input('groupes_metier_id', ['label' => 'Groupe métier', 'options' => $groupesMetiers, 'empty' => true]);
26 ?> 15 ?>
27 </fieldset> 16 </fieldset>
28 - <?= $this->Form->button(__('Submit')) ?> 17 + <?= $this->Form->button(__('Valider')) ?>
29 <?= $this->Form->end() ?> 18 <?= $this->Form->end() ?>
30 </div> 19 </div>
  20 +
  21 +<div class="actions">
  22 + <?php
  23 + echo $this->element('menu');
  24 + echo $this->element('menu_form', [ 'pluralHumanName' => 'Utilisateurs' ]);
  25 + ?>
  26 +</div>
31 \ No newline at end of file 27 \ No newline at end of file
src/Template/Users/login.ctp
@@ -4,8 +4,8 @@ @@ -4,8 +4,8 @@
4 <?= $this->Flash->render('auth') ?> 4 <?= $this->Flash->render('auth') ?>
5 <?= $this->Form->create() ?> 5 <?= $this->Form->create() ?>
6 <fieldset> 6 <fieldset>
7 - <?= $this->Form->input('username') ?>  
8 - <?= $this->Form->input('password') ?> 7 + <?= $this->Form->input('username', ['label' => 'Login']) ?>
  8 + <?= $this->Form->input('password', ['label' => 'Mot de passe']) ?>
9 </fieldset> 9 </fieldset>
10 <?= $this->Form->button(__('Se Connecter')); ?> 10 <?= $this->Form->button(__('Se Connecter')); ?>
11 <?= $this->Form->end() ?> 11 <?= $this->Form->end() ?>