Commit 19798ef9cf669701d2c27b9394da46d1232369bb
1 parent
eef700b9
Exists in
master
and in
3 other branches
Mode_install, maj script_install, page d'acceuil -> login, maj script bd
Avancement : Implémentation complète du CRUD +++ #3528 #3530 #3531 #3533
Showing
35 changed files
with
1059 additions
and
295 deletions
Show diff stats
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 = 'Labinvent 2.0'; | @@ -46,9 +46,8 @@ $cakeDescription = 'Labinvent 2.0'; | ||
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 = 'Labinvent 2.0'; | @@ -93,7 +92,7 @@ $cakeDescription = 'Labinvent 2.0'; | ||
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->layout = false; | @@ -25,7 +25,7 @@ $this->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->layout = false; | @@ -40,7 +40,7 @@ $this->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() ?> |