Commit 9e997ff66c8e2f07bb6a6f0e9c38a5b42a2ccd06
1 parent
2f8edca8
Exists in
master
and in
1 other branch
Amélioration et Bugfixes de Emprunts, Suivis, et Docs attachés
(v3.7.9.11)
Showing
11 changed files
with
307 additions
and
78 deletions
Show diff stats
README.md
... | ... | @@ -53,13 +53,10 @@ Logiciel testé et validé sur les configurations suivantes : |
53 | 53 | |
54 | 54 | VERSION ACTUELLE |
55 | 55 | |
56 | -Date: 26/03/2020 | |
57 | -Version: 3.7.9.10 | |
56 | +Date: 27/03/2020 | |
57 | +Version: 3.7.9.11 | |
58 | 58 | Author: EP |
59 | -Commentaire: EMPRUNTS : Amélioration par refactorisation (1) | |
60 | - Comme pour les docs attachés et les suivis (même principe) : | |
61 | - - refactorisation des actions add() et edit() en une seule add_or_edit() (car très semblables) | |
62 | - - refactorisation des vues add et edit en une seule add_edit (car très semblables) | |
59 | +Commentaire: Amélioration et Bugfixes de Emprunts, Suivis, et Docs attachés | |
63 | 60 | |
64 | 61 | IMPORTANT : |
65 | 62 | - Pour connaitre la version actuelle, taper "./VERSION" |
... | ... | @@ -94,27 +91,33 @@ La liste ci-dessous n'est plus à jour, elle est désormais en ligne ici : https |
94 | 91 | |
95 | 92 | ----------------------------------------------------------------------------------------------------------- |
96 | 93 | |
94 | +26/03/2020 Version 3.7.9.10 (EP) | |
95 | + EMPRUNTS : Amélioration par refactorisation (1) | |
96 | + Comme pour les docs attachés et les suivis (même principe) : | |
97 | + - refactorisation des actions add() et edit() en une seule add_or_edit() (car très semblables) | |
98 | + - refactorisation des vues add et edit en une seule add_edit (car très semblables) | |
99 | + | |
97 | 100 | 25/03/2020 Version 3.7.9.9 (EP) |
98 | - Suivis : Amélioration par refactorisation (2) | |
101 | + SUIVIS : Amélioration par refactorisation (2) | |
99 | 102 | Comme pour les docs attachés (même principe) : |
100 | 103 | - refactorisation des actions add() et edit() en une seule add_or_edit() (car très semblables) |
101 | 104 | - refactorisation des vues add et edit en une seule add_edit (car très semblables) |
102 | 105 | - debugging javascript en cours (car ça marchait pas très bien tout ça...) |
103 | 106 | |
104 | 107 | 24/03/2020 Version 3.7.9.8 (EP) |
105 | - Suivis : Amélioration et nombreux Bugfixes !!! (1) | |
108 | + SUIVIS : Amélioration et nombreux Bugfixes !!! (1) | |
106 | 109 | - pb javascript si métrologie |
107 | 110 | - ajout intitulé comme titre |
108 | 111 | - vue édition : champs trop larges, champs éditables, champs inutiles... |
109 | 112 | - ... |
110 | 113 | |
111 | 114 | 23/03/2020 Version 3.7.9.7 (EP) |
112 | - Amélioration de la gestion des docs attachés (3) | |
115 | + DOCS LIÉS : Amélioration de la gestion des docs attachés (3) | |
113 | 116 | - Enorme simplification grâce à la refactorisation des vues add et edit en une seule add_edit car elles sont très semblables |
114 | 117 | - TODO : faire la meme chose pour toutes les vues add et edit des différents objets (materiel, suivi, emprunt...) |
115 | 118 | |
116 | 119 | 20/03/2020 Version 3.7.9.6 (EP) |
117 | - Amélioration et nombreux bugfixes de la gestion des docs attachés (2) | |
120 | + DOCS LIÉS : Amélioration et nombreux bugfixes de la gestion des docs attachés (2) | |
118 | 121 | |
119 | 122 | 16/03/2020 Version 3.7.9.5 (EP) |
120 | 123 | Premiers bugfixes du nouveau site responsive (5) | ... | ... |
src/Controller/DocumentsController.php
... | ... | @@ -210,22 +210,33 @@ class DocumentsController extends AppController |
210 | 210 | ])->first(); |
211 | 211 | */ |
212 | 212 | // $materiel |
213 | - $materiel = $this->Documents->Materiels->get($document->materiel_id); | |
214 | - if ($materiel != null) { | |
215 | - $this->set('materiel', $materiel); | |
216 | - // $suivi | |
217 | - } else { | |
218 | - $suivi = $this->Documents->Suivis->find() | |
219 | - ->where([ | |
220 | - 'id =' => $document->suivi_id | |
221 | - ])->first(); | |
222 | - $this->set('suivi', $suivi); | |
213 | + //debug($document->materiel_id); | |
214 | + //exit; | |
215 | + if ($document->materiel_id !== null) { | |
216 | + $parent_controller = 'Materiels'; | |
217 | + $parent_fk = 'materiel_id'; | |
218 | + $PARENT_IS_MATERIEL = true; | |
223 | 219 | } |
224 | - | |
225 | - $this->set('document', $document); | |
220 | + else { | |
221 | + $parent_controller = 'Suivis'; | |
222 | + $parent_fk = 'suivi_id'; | |
223 | + $PARENT_IS_MATERIEL = false; | |
224 | + } | |
225 | + $parent = $this->Documents->$parent_controller->get($document->$parent_fk); | |
226 | + /* | |
227 | + // suivi | |
228 | + $parent = $this->Documents->Suivis->find() | |
229 | + ->where([ | |
230 | + 'id =' => $document->suivi_id | |
231 | + ])->first(); | |
232 | + */ | |
233 | + $this->set(compact('document', 'PARENT_IS_MATERIEL', 'parent', 'parent_controller')); | |
234 | + //$this->set(compact('document', 'parent', 'parent_controller')); | |
235 | + /* (EP) inutile | |
226 | 236 | $this->set('_serialize', [ |
227 | 237 | 'document' |
228 | 238 | ]); |
239 | + */ | |
229 | 240 | } |
230 | 241 | |
231 | 242 | |
... | ... | @@ -272,6 +283,8 @@ class DocumentsController extends AppController |
272 | 283 | if ($this->request->is(['post','patch','put'])) { |
273 | 284 | |
274 | 285 | $document = $this->Documents->patchEntity($document, $this->request->getData()); |
286 | + //debug($document); | |
287 | + //exit; | |
275 | 288 | |
276 | 289 | if ($IS_ADD) { |
277 | 290 | /* |
... | ... | @@ -286,17 +299,17 @@ class DocumentsController extends AppController |
286 | 299 | } |
287 | 300 | |
288 | 301 | // SAVE |
289 | - $action = $IS_ADD ? 'ajouté' : 'modifié'; | |
302 | + $verb = $IS_ADD ? 'ajouté' : 'modifié'; | |
290 | 303 | // - NOT SAVED |
291 | 304 | if (! $this->Documents->save($document)) { |
292 | 305 | //$this->myDebug($document->getErrors()); |
293 | 306 | //debug($document->getErrors()); |
294 | 307 | //debug($document); |
295 | - $this->Flash->error(__("Le fichier n'a pas pu être $action")); | |
308 | + $this->Flash->error(__("Le fichier n'a pas pu être $verb")); | |
296 | 309 | } |
297 | 310 | // - SAVED ok |
298 | 311 | else { |
299 | - $this->Flash->success(__("Le fichier a bien été $action")); | |
312 | + $this->Flash->success(__("Le fichier a bien été $verb")); | |
300 | 313 | //$id = $document->materiel_id; |
301 | 314 | $parent_id = $document->materiel_id; |
302 | 315 | ... | ... |
src/Controller/EmpruntsController.php
... | ... | @@ -150,11 +150,19 @@ class EmpruntsController extends AppController |
150 | 150 | if ($this->request->is(['patch','post','put'])) { |
151 | 151 | //$entity = $this->Emprunts->patchEntity($suivi, $this->request->getData()); |
152 | 152 | $entity = $this->$controller->patchEntity($entity, $this->request->getData()); |
153 | + $verb = $IS_ADD ? 'ajouté' : 'modifié'; | |
153 | 154 | // SAVED OK |
154 | 155 | //if ($this->Emprunts->save($suivi)) { |
155 | - if ($this->save($entity)) { | |
156 | - $verb = $IS_ADD ? 'ajouté' : 'modifié'; | |
156 | + if ($this->$controller->save($entity)) { | |
157 | 157 | $this->Flash->success(__("L'emprunt a bien été $verb")); |
158 | + $parent_id = $IS_ADD ? $this->request->getParam('pass.0') : $entity->materiel_id; | |
159 | + // (EP) Redirection vers la vue parente (materiel emprunté) (depuis add ou edit) | |
160 | + return $this->redirect([ | |
161 | + 'controller' => 'Materiels', | |
162 | + 'action' => 'view', | |
163 | + $parent_id | |
164 | + ]); | |
165 | + /* | |
158 | 166 | // ADD |
159 | 167 | if ($IS_ADD) return $this->redirect([ |
160 | 168 | 'controller' => 'Materiels', |
... | ... | @@ -163,11 +171,12 @@ class EmpruntsController extends AppController |
163 | 171 | ]); |
164 | 172 | // EDIT |
165 | 173 | else $this->setAction('view', $id); |
166 | - /* equivalent à | |
174 | + /S equivalent à | |
167 | 175 | else return $this->redirect([ |
168 | 176 | 'action' => 'view', |
169 | 177 | $id |
170 | 178 | ]); |
179 | + S/ | |
171 | 180 | */ |
172 | 181 | } |
173 | 182 | // SAVED KO |
... | ... | @@ -225,7 +234,7 @@ class EmpruntsController extends AppController |
225 | 234 | ]); |
226 | 235 | |
227 | 236 | $this->set(compact( |
228 | - 'IS_ADD', 'IS_EDIT', | |
237 | + 'IS_ADD', | |
229 | 238 | |
230 | 239 | //'emprunt', // @deprecated |
231 | 240 | 'entity', // nouveau nom |
... | ... | @@ -428,9 +437,12 @@ class EmpruntsController extends AppController |
428 | 437 | } else { |
429 | 438 | $this->Flash->error(__('L\'emprunt n\'a pas pu être supprimé.')); |
430 | 439 | } |
440 | + $this->setAction('index'); | |
441 | + /* equivaut à | |
431 | 442 | return $this->redirect([ |
432 | 443 | 'action' => 'index' |
433 | 444 | ]); |
445 | + */ | |
434 | 446 | } |
435 | 447 | |
436 | 448 | /** | ... | ... |
src/Controller/SuivisController.php
... | ... | @@ -242,30 +242,47 @@ class SuivisController extends AppController |
242 | 242 | $suivi->typemesure = "Indirect"; |
243 | 243 | $suivi->panne_resolu = false; |
244 | 244 | } |
245 | + $verb = $IS_ADD ? 'ajouté' : 'modifié'; | |
245 | 246 | // SAVED OK |
246 | 247 | if ($this->Suivis->save($suivi)) { |
247 | - $verb = $IS_ADD ? 'ajouté' : 'modifié'; | |
248 | 248 | $this->Flash->success(__("Le suivi a bien été $verb")); |
249 | - // ADD | |
250 | - if ($IS_ADD) return $this->redirect([ | |
249 | + // materiel id | |
250 | + //$parent_id = $IS_ADD ? $this->request->getParam('pass')[0] : $this->request->getData('materiel_id'); | |
251 | + $parent_id = $IS_ADD ? $this->request->getParam('pass.0') : $suivi->materiel_id; | |
252 | + // (EP) Redirection vers la vue parente (materiel suivi) (depuis add ou edit) | |
253 | + //if ($IS_ADD) return $this->redirect([ | |
254 | + return $this->redirect([ | |
251 | 255 | 'controller' => 'Materiels', |
252 | 256 | 'action' => 'view', |
253 | - $this->request->getAttribute('params')['pass'][0] | |
257 | + $parent_id | |
258 | + //$this->request->getParam('pass')[0] | |
259 | + //$this->request->getAttribute('params')['pass'][0] | |
254 | 260 | ]); |
255 | - // EDIT | |
261 | + /* EDIT | |
262 | + //debug($this->request->getData()); | |
263 | + //else $this->setAction('view',$id); | |
264 | + // marche pas, pourquoi ??? | |
265 | + //debug($this->referer()); | |
266 | + //else return $this->redirect($this->referer()); | |
267 | + //else $this->setAction('index'); | |
268 | + /S (EP) equivalent à | |
256 | 269 | else return $this->redirect([ |
257 | 270 | 'action' => 'index', |
258 | 271 | $id |
259 | 272 | ]); |
273 | + S/ | |
274 | + */ | |
260 | 275 | } |
261 | 276 | // SAVED KO |
262 | 277 | else { |
263 | 278 | $this->Flash->error(__("Le suivi n'a pas pu être $verb")); |
279 | + /* | |
264 | 280 | if ($IS_ADD) return $this->redirect([ |
265 | 281 | 'controller' => 'Materiels', |
266 | 282 | 'action' => 'view', |
267 | 283 | $this->request->getAttribute('params')['pass'][0] |
268 | 284 | ]); |
285 | + */ | |
269 | 286 | } |
270 | 287 | } // POST |
271 | 288 | |
... | ... | @@ -387,7 +404,7 @@ class SuivisController extends AppController |
387 | 404 | //$parent_id = $materiel_id; |
388 | 405 | $entity = $suivi; |
389 | 406 | $this->set(compact( |
390 | - 'IS_ADD', 'IS_EDIT', | |
407 | + 'IS_ADD', | |
391 | 408 | 'unite', 'domaineresp', |
392 | 409 | |
393 | 410 | //'suivi', // @deprecated |
... | ... | @@ -663,7 +680,7 @@ class SuivisController extends AppController |
663 | 680 | 'delete' |
664 | 681 | ]); |
665 | 682 | $suivi = $this->Suivis->get($id); |
666 | - $id=$suivi->materiel_id; | |
683 | + $parent_id = $suivi->materiel_id; | |
667 | 684 | if ($this->Suivis->delete($suivi)) { |
668 | 685 | $this->Flash->success(__('Le suivi a bien été supprimé.')); |
669 | 686 | } else { |
... | ... | @@ -672,7 +689,7 @@ class SuivisController extends AppController |
672 | 689 | return $this->redirect([ |
673 | 690 | 'controller' => 'materiels', |
674 | 691 | 'action' => 'view', |
675 | - $id | |
692 | + $parent_id | |
676 | 693 | ]); |
677 | 694 | } |
678 | 695 | ... | ... |
src/Model/Table/EmpruntsTable.php
... | ... | @@ -77,7 +77,7 @@ class EmpruntsTable extends AppTable |
77 | 77 | */ |
78 | 78 | |
79 | 79 | // Ce champ s'appelle "Pièce" (emprunt interne) |
80 | - $validator->notEmpty('e_lieu_detail', 'Le champ doit être rempli pour un emprunt interne.', | |
80 | + $validator->notEmpty('e_lieu_detail', 'Le champ doit être rempli (pour un emprunt interne)', | |
81 | 81 | function ($context) { |
82 | 82 | //if ($context['providers']['entity']['emprunt_interne'] !== null) { |
83 | 83 | if ( !empty($context['data']) && !is_null($context['data']['emprunt_interne']) ) { |
... | ... | @@ -216,7 +216,7 @@ class EmpruntsTable extends AppTable |
216 | 216 | }; |
217 | 217 | $rules->add($checkSiteIsGiven, [ |
218 | 218 | 'errorField' => 'site_id', |
219 | - 'message' => 'Il faut préciser le site' | |
219 | + 'message' => 'Il faut préciser le site (pour un emprunt interne)' | |
220 | 220 | ]); |
221 | 221 | |
222 | 222 | ... | ... |
src/Template/Documents/add_edit.ctp
1 | 1 | <?php |
2 | 2 | // Variables passées à cette vue par le controleur |
3 | + | |
4 | +// - 1) du super Controleur (AppController) | |
5 | + | |
6 | +$PROFILE_USER = $PROFILE_USER; // 1 | |
7 | +$PROFILE_RESPONSABLE = $PROFILE_RESPONSABLE; // 2 | |
8 | +$PROFILE_ADMIN = $PROFILE_ADMIN; // 3 | |
9 | +$PROFILE_ADMINPLUS = $PROFILE_ADMINPLUS; // 4 | |
10 | +$PROFILE_SUPERADMIN = $PROFILE_SUPERADMIN; // 5 | |
11 | +$allProfiles = $allProfiles; | |
12 | + | |
13 | +// PAS TOUJOURS | |
14 | +//$_serialize = $_serialize; // True or False | |
15 | + | |
16 | +$username = $username; | |
17 | +$configuration = $configuration; | |
18 | +$D = $D; | |
19 | +$priviledgedUser = $priviledgedUser; // ATTENTION, $priviledgedUser = NULL si l'utilisateur courant n'est pas un utilisateur privilégié (pas dans la table "utilisateurs") | |
20 | +$role = $role; | |
21 | +$profile = $profile; | |
22 | +$USER_IS_UTILISATEUR = $USER_IS_UTILISATEUR; | |
23 | +$USER_IS_RESPONSABLE = $USER_IS_RESPONSABLE; | |
24 | +$USER_IS_ADMIN = $USER_IS_ADMIN; | |
25 | +$USER_IS_ADMINPLUS = $USER_IS_ADMINPLUS; | |
26 | +$USER_IS_SUPERADMIN = $USER_IS_SUPERADMIN; | |
27 | +$USER_IS_RESPONSABLE_OR_MORE = $USER_IS_RESPONSABLE_OR_MORE; | |
28 | +$USER_IS_ADMIN_OR_MORE = $USER_IS_ADMIN_OR_MORE; | |
29 | +$USER_IS_ADMINPLUS_OR_MORE = $USER_IS_ADMINPLUS_OR_MORE; | |
30 | + | |
31 | +$hiddenFields = $hiddenFields; | |
32 | +$mandatoryFields = $mandatoryFields; | |
33 | +$readOnlyFields = $readOnlyFields; | |
34 | +$haveDefaultValueFields = $haveDefaultValueFields; | |
35 | +/* | |
36 | + debug($hiddenFields); | |
37 | + debug($mandatoryFields); | |
38 | + debug($readOnlyFields); | |
39 | + debug($haveDefaultValueFields); | |
40 | + */ | |
41 | + | |
42 | +// Metrologie | |
43 | +$idGmNa = $idGmNa; | |
44 | +$idGtNa = $idGtNa; | |
45 | + | |
46 | +// ET AUSSI QUELQUES FONCTIONS : | |
47 | +$displayElement = $displayElement; | |
48 | +$dateProchainControleVerif = $dateProchainControleVerif; | |
49 | + | |
50 | +// - 2) du controleur de cette vue (DocumentsController) | |
51 | + | |
3 | 52 | // add or edit mode ? true=add ; false=edit |
4 | 53 | $IS_ADD = $IS_ADD; |
54 | +$IS_EDIT = !$IS_ADD; | |
5 | 55 | // objet document : si ADD : vide ; si EDIT : plein |
6 | 56 | $document = $document; |
7 | 57 | // - Liste des types de doc |
... | ... | @@ -17,7 +67,6 @@ $doc = 'un document'; |
17 | 67 | if (isset($photo)) { |
18 | 68 | $photo = $photo; |
19 | 69 | $doc = 'une photo'; |
20 | - $idType = $idType; | |
21 | 70 | // ADD only: |
22 | 71 | if ($IS_ADD) $idType = $idType; |
23 | 72 | } |
... | ... | @@ -86,9 +135,9 @@ if (isset($photo)) { |
86 | 135 | */ |
87 | 136 | if ($IS_ADD) { |
88 | 137 | //$control_name = isset($materiel) ? 'materiel_id' : 'suivi_id'; |
89 | - $control_name = $parent_controller=='materiels' ? 'materiel_id' : 'suivi_id'; | |
138 | + $field = $parent_controller=='materiels' ? 'materiel_id' : 'suivi_id'; | |
90 | 139 | //$label = 'N° materiel labo'; |
91 | - echo $this->Form->hidden($control_name, [ | |
140 | + echo $this->Form->hidden($field, [ | |
92 | 141 | //'default' => $parent_id, |
93 | 142 | 'default' => $parent->id, |
94 | 143 | ]); |
... | ... | @@ -102,17 +151,16 @@ if (isset($photo)) { |
102 | 151 | |
103 | 152 | // - Type (hidden si photo) |
104 | 153 | echo "<i>(Si vous choisissez le type 'Photo', ce document sera affiché en tête de la fiche du $parent_type associé)</i>"; |
105 | - $f = 'control'; | |
154 | + $control = 'control'; | |
106 | 155 | $default = 1; |
107 | - if (isset($photo)) { | |
108 | - $f = 'hidden'; | |
156 | + /* | |
157 | + if ($IS_EDIT) $default = null; | |
158 | + */ | |
159 | + if ($IS_ADD && isset($photo)) { | |
160 | + $control = 'hidden'; | |
109 | 161 | $default = $idType; |
110 | 162 | } |
111 | - if (!$IS_ADD) { | |
112 | - $f = 'control'; | |
113 | - $default = null; | |
114 | - } | |
115 | - echo $this->Form->$f('type_document_id', [ | |
163 | + echo $this->Form->$control('type_document_id', [ | |
116 | 164 | 'label' => 'Type', |
117 | 165 | 'options' => $typesD, |
118 | 166 | 'default' => $default // ADD only |
... | ... | @@ -122,8 +170,8 @@ if (isset($photo)) { |
122 | 170 | echo $this->Form->control('description'); |
123 | 171 | |
124 | 172 | // - File upload (chemin_file) |
125 | - $f = $IS_ADD ? 'control' : 'hidden'; | |
126 | - echo $this->Form->$f('chemin_file', [ | |
173 | + $control = $IS_ADD ? 'control' : 'hidden'; | |
174 | + echo $this->Form->$control('chemin_file', [ | |
127 | 175 | 'label' => 'Fichier (' . substr($configuration->taille_max_doc / (1024 * 1024), 0, 4) . ' Mo max)', |
128 | 176 | 'type' => 'file' |
129 | 177 | ]); | ... | ... |
src/Template/Documents/view.ctp
1 | 1 | <?php |
2 | 2 | // Variables passées à cette vue par le controleur |
3 | 3 | $document = $document; |
4 | +$parent = $parent; | |
5 | +$parent_controller = $parent_controller; | |
6 | +$PARENT_IS_MATERIEL = $PARENT_IS_MATERIEL; | |
7 | +$parent_name = $PARENT_IS_MATERIEL ? 'matériel' : 'suivi'; | |
4 | 8 | |
5 | 9 | // Nouvelles variables définies pour cette vue |
6 | 10 | $photo_formats = ['png','jpg','jpeg']; |
... | ... | @@ -51,26 +55,32 @@ $photo_formats = ['png','jpg','jpeg']; |
51 | 55 | |
52 | 56 | <?php |
53 | 57 | |
54 | - // - Matériel : lien vers le materiel (ou le suivi) | |
55 | - if (isset($materiel)) { | |
56 | - $displayElement(__('Materiel'), $this->Html->link($materiel->designation, [ | |
57 | - 'controller' => 'Materiels', | |
58 | - 'action' => 'view', | |
59 | - $materiel->id | |
60 | - ])); | |
61 | - } else if (isset($suivi)) { | |
62 | - $displayElement(__('Suivi'), $this->Html->link('Suivi ' . $suivi->id, [ | |
58 | + // - Parent : lien vers le materiel (ou le suivi) | |
59 | + // matériel | |
60 | + //if (isset($materiel)) { | |
61 | + $parent_ref = $PARENT_IS_MATERIEL ? $parent->designation : $parent->intitule.' (suivi#'.$parent->id.')'; | |
62 | + $displayElement(__("Lié au $parent_name"), $this->Html->link($parent_ref, [ | |
63 | + 'controller' => $parent_controller, | |
64 | + 'action' => 'view', | |
65 | + $parent->id | |
66 | + ])); | |
67 | + /* | |
68 | + // suivi | |
69 | + //else if (isset($suivi)) { | |
70 | + else { | |
71 | + $displayElement(__('Suivi'), $this->Html->link('Suivi ' . $parent->id, [ | |
63 | 72 | 'controller' => 'Suivis', |
64 | 73 | 'action' => 'view', |
65 | - $suivi->id | |
74 | + $parent->id | |
66 | 75 | ])); |
67 | 76 | } |
77 | + */ | |
68 | 78 | |
69 | 79 | // - Nom du doc |
70 | 80 | $displayElement(__('Nom'), h($document->nom)); |
71 | 81 | |
72 | 82 | // - Type |
73 | - debug($document); | |
83 | + //debug($document); | |
74 | 84 | $displayElement(__('Type'), $document->has('type_document') ? h($document->type_document->nom) : ''); |
75 | 85 | |
76 | 86 | /* | ... | ... |
src/Template/Emprunts/add_edit.ctp
1 | 1 | <?php |
2 | 2 | // Variables passées à cette vue par le controleur |
3 | 3 | |
4 | +// - 1) du super Controleur (AppController) | |
5 | + | |
6 | +$PROFILE_USER = $PROFILE_USER; // 1 | |
7 | +$PROFILE_RESPONSABLE = $PROFILE_RESPONSABLE; // 2 | |
8 | +$PROFILE_ADMIN = $PROFILE_ADMIN; // 3 | |
9 | +$PROFILE_ADMINPLUS = $PROFILE_ADMINPLUS; // 4 | |
10 | +$PROFILE_SUPERADMIN = $PROFILE_SUPERADMIN; // 5 | |
11 | +$allProfiles = $allProfiles; | |
12 | + | |
13 | +// PAS TOUJOURS | |
14 | +//$_serialize = $_serialize; // True or False | |
15 | + | |
16 | +$username = $username; | |
17 | +$configuration = $configuration; | |
18 | +$D = $D; | |
19 | +$priviledgedUser = $priviledgedUser; // ATTENTION, $priviledgedUser = NULL si l'utilisateur courant n'est pas un utilisateur privilégié (pas dans la table "utilisateurs") | |
20 | +$role = $role; | |
21 | +$profile = $profile; | |
22 | +$USER_IS_UTILISATEUR = $USER_IS_UTILISATEUR; | |
23 | +$USER_IS_RESPONSABLE = $USER_IS_RESPONSABLE; | |
24 | +$USER_IS_ADMIN = $USER_IS_ADMIN; | |
25 | +$USER_IS_ADMINPLUS = $USER_IS_ADMINPLUS; | |
26 | +$USER_IS_SUPERADMIN = $USER_IS_SUPERADMIN; | |
27 | +$USER_IS_RESPONSABLE_OR_MORE = $USER_IS_RESPONSABLE_OR_MORE; | |
28 | +$USER_IS_ADMIN_OR_MORE = $USER_IS_ADMIN_OR_MORE; | |
29 | +$USER_IS_ADMINPLUS_OR_MORE = $USER_IS_ADMINPLUS_OR_MORE; | |
30 | + | |
31 | +$hiddenFields = $hiddenFields; | |
32 | +$mandatoryFields = $mandatoryFields; | |
33 | +$readOnlyFields = $readOnlyFields; | |
34 | +$haveDefaultValueFields = $haveDefaultValueFields; | |
35 | +/* | |
36 | +debug($hiddenFields); | |
37 | +debug($mandatoryFields); | |
38 | +debug($readOnlyFields); | |
39 | +debug($haveDefaultValueFields); | |
40 | +*/ | |
41 | + | |
42 | +// Metrologie | |
43 | +$idGmNa = $idGmNa; | |
44 | +$idGtNa = $idGtNa; | |
45 | + | |
46 | +// ET AUSSI QUELQUES FONCTIONS : | |
47 | +$displayElement = $displayElement; | |
48 | +$dateProchainControleVerif = $dateProchainControleVerif; | |
49 | + | |
50 | + | |
51 | +// - 2) du controleur de cette vue (EmpruntsController) | |
52 | + | |
4 | 53 | // add or edit mode ? true=add ; false=edit |
5 | 54 | $IS_ADD = $IS_ADD; |
6 | -$IS_EDIT = $IS_EDIT; | |
55 | +$IS_EDIT = !$IS_ADD; | |
7 | 56 | |
8 | 57 | //debug($entity); |
9 | 58 | $entity = $entity; // nouveau nom |
... | ... | @@ -26,6 +75,8 @@ $sites = $sites; |
26 | 75 | |
27 | 76 | $entity_name = 'emprunt'; |
28 | 77 | |
78 | +$parent_controller = 'materiels'; | |
79 | + | |
29 | 80 | // ADD only |
30 | 81 | if ($IS_ADD) { |
31 | 82 | $verb = 'Ajouter'; |
... | ... | @@ -130,12 +181,17 @@ else { |
130 | 181 | echo '<div id="interne" style="margin: 0; padding: 0; ' . $disp_interne . ';">'; |
131 | 182 | |
132 | 183 | // - nom emprunteur interne (hidden only pour Utilisateur) |
133 | - if (! (in_array($role, [ | |
184 | + /* | |
185 | + debug($role); | |
186 | + $IS_USER = $role=='Utilisateur'; | |
187 | + $IS_USER = ! (in_array($role, [ | |
134 | 188 | 'Responsable', |
135 | 189 | 'Administration', |
136 | 190 | 'Administration Plus', |
137 | 191 | 'Super Administrateur' |
138 | - ]))) { | |
192 | + ])); | |
193 | + */ | |
194 | + if ($USER_IS_UTILISATEUR) { | |
139 | 195 | $f = 'hidden'; |
140 | 196 | $disabled = true; |
141 | 197 | } |
... | ... | @@ -217,9 +273,17 @@ else { |
217 | 273 | |
218 | 274 | </fieldset> |
219 | 275 | |
220 | - <?= $this->Form->submit(__('Valider')) ?> | |
276 | + <!-- BOUTONS submit & cancel --> | |
277 | + <!-- <= $this->Form->submit(__('Valider')) ?> --> | |
278 | + <?php $echoSubmitButtons($this, | |
279 | + 'view', | |
280 | + //$parent_id, | |
281 | + $parent->id, | |
282 | + $parent_controller | |
283 | + ); | |
221 | 284 | |
222 | - <?= $this->Form->end() ?> | |
285 | + echo $this->Form->end(); | |
286 | + ?> | |
223 | 287 | |
224 | 288 | </div> |
225 | 289 | ... | ... |
src/Template/Materiels/add.ctp
... | ... | @@ -23,7 +23,7 @@ use Cake\ORM\TableRegistry; |
23 | 23 | // 1) FROM AppController: |
24 | 24 | |
25 | 25 | $PROFILE_USER = $PROFILE_USER; |
26 | -$PROFILE_ADMIN = $PROFILE_USER; | |
26 | +$PROFILE_ADMIN = $PROFILE_ADMIN; | |
27 | 27 | $PROFILE_RESPONSABLE = $PROFILE_RESPONSABLE; |
28 | 28 | $PROFILE_ADMINPLUS = $PROFILE_ADMINPLUS; |
29 | 29 | $PROFILE_SUPERADMIN = $PROFILE_SUPERADMIN; |
... | ... | @@ -57,8 +57,8 @@ $idGmNa = $idGmNa; |
57 | 57 | $idGtNa = $idGtNa; |
58 | 58 | |
59 | 59 | // ET AUSSI QUELQUES FONCTIONS : |
60 | -// $displayElement() | |
61 | -// $dateProchainControleVerif() | |
60 | +$displayElement = $displayElement; | |
61 | +$dateProchainControleVerif = $dateProchainControleVerif; | |
62 | 62 | |
63 | 63 | |
64 | 64 | // 2) FROM my own controller (MaterielController): | ... | ... |
src/Template/Suivis/add_edit.ctp
1 | 1 | <?php |
2 | 2 | // Variables passées à cette vue par le controleur |
3 | 3 | |
4 | +// - 1) du super Controleur (AppController) | |
5 | + | |
6 | +$PROFILE_USER = $PROFILE_USER; // 1 | |
7 | +$PROFILE_RESPONSABLE = $PROFILE_RESPONSABLE; // 2 | |
8 | +$PROFILE_ADMIN = $PROFILE_ADMIN; // 3 | |
9 | +$PROFILE_ADMINPLUS = $PROFILE_ADMINPLUS; // 4 | |
10 | +$PROFILE_SUPERADMIN = $PROFILE_SUPERADMIN; // 5 | |
11 | +$allProfiles = $allProfiles; | |
12 | + | |
13 | +// PAS TOUJOURS | |
14 | +//$_serialize = $_serialize; // True or False | |
15 | + | |
16 | +$username = $username; | |
17 | +$configuration = $configuration; | |
18 | +$D = $D; | |
19 | +$priviledgedUser = $priviledgedUser; // ATTENTION, $priviledgedUser = NULL si l'utilisateur courant n'est pas un utilisateur privilégié (pas dans la table "utilisateurs") | |
20 | +$role = $role; | |
21 | +$profile = $profile; | |
22 | +$USER_IS_UTILISATEUR = $USER_IS_UTILISATEUR; | |
23 | +$USER_IS_RESPONSABLE = $USER_IS_RESPONSABLE; | |
24 | +$USER_IS_ADMIN = $USER_IS_ADMIN; | |
25 | +$USER_IS_ADMINPLUS = $USER_IS_ADMINPLUS; | |
26 | +$USER_IS_SUPERADMIN = $USER_IS_SUPERADMIN; | |
27 | +$USER_IS_RESPONSABLE_OR_MORE = $USER_IS_RESPONSABLE_OR_MORE; | |
28 | +$USER_IS_ADMIN_OR_MORE = $USER_IS_ADMIN_OR_MORE; | |
29 | +$USER_IS_ADMINPLUS_OR_MORE = $USER_IS_ADMINPLUS_OR_MORE; | |
30 | + | |
31 | +$hiddenFields = $hiddenFields; | |
32 | +$mandatoryFields = $mandatoryFields; | |
33 | +$readOnlyFields = $readOnlyFields; | |
34 | +$haveDefaultValueFields = $haveDefaultValueFields; | |
35 | +/* | |
36 | + debug($hiddenFields); | |
37 | + debug($mandatoryFields); | |
38 | + debug($readOnlyFields); | |
39 | + debug($haveDefaultValueFields); | |
40 | + */ | |
41 | + | |
42 | +// Metrologie | |
43 | +$idGmNa = $idGmNa; | |
44 | +$idGtNa = $idGtNa; | |
45 | + | |
46 | +// ET AUSSI QUELQUES FONCTIONS : | |
47 | +$displayElement = $displayElement; | |
48 | +$dateProchainControleVerif = $dateProchainControleVerif; | |
49 | + | |
50 | + | |
51 | +// - 2) du controleur de cette vue (SuivisController) | |
52 | + | |
4 | 53 | // add or edit mode ? true=add ; false=edit |
5 | 54 | $IS_ADD = $IS_ADD; |
6 | -$IS_EDIT = $IS_EDIT; | |
55 | +$IS_EDIT = !$IS_ADD; | |
7 | 56 | |
57 | +//debug($entity); | |
8 | 58 | $entity = $entity; // nouveau nom |
9 | 59 | $suivi = $entity; // @deprecated |
10 | 60 | $typeSuivis = $typeSuivis; |
... | ... | @@ -23,6 +73,7 @@ $groupesThematiques = $groupesThematiques; |
23 | 73 | $groupesMetiers = $groupesMetiers; |
24 | 74 | |
25 | 75 | $entity_name = 'suivi'; |
76 | +$parent_controller = 'materiels'; | |
26 | 77 | |
27 | 78 | // ADD only |
28 | 79 | if ($IS_ADD) { |
... | ... | @@ -122,7 +173,8 @@ else { |
122 | 173 | //'disabled' => TRUE |
123 | 174 | // ADD only : |
124 | 175 | 'default' => 3, |
125 | - 'empty' => "Choisir le type de suivi" | |
176 | + 'empty' => "Choisir le type de suivi", | |
177 | + 'required' => 'required' | |
126 | 178 | ]); |
127 | 179 | |
128 | 180 | // ADD only |
... | ... | @@ -342,10 +394,17 @@ else { |
342 | 394 | |
343 | 395 | </fieldset> |
344 | 396 | |
345 | - <!-- Bouton enregistrer --> | |
346 | - <?=$this->Form->submit(__('Enregistrer'))?> | |
347 | - | |
348 | - <?=$this->Form->end()?> | |
397 | + <!-- BOUTONS submit & cancel --> | |
398 | + <!-- <= $this->Form->submit(__('Valider')) ?> --> | |
399 | + <?php $echoSubmitButtons($this, | |
400 | + 'view', | |
401 | + //$parent_id, | |
402 | + $parent->id, | |
403 | + $parent_controller | |
404 | + ); | |
405 | + | |
406 | + echo $this->Form->end(); | |
407 | + ?> | |
349 | 408 | |
350 | 409 | </div> |
351 | 410 | ... | ... |
tests/TestCase/Controller/MaterielsControllerTest.php
... | ... | @@ -828,7 +828,7 @@ class MaterielsControllerTest extends General { |
828 | 828 | $this->get('/materiels/index'); |
829 | 829 | $this->assertResponseContains("Matos Test 2 VALIDATED", "Le matériel CREATED édité n'a pas pu etre passé à VALIDATED"); |
830 | 830 | |
831 | - // 3) Test qu'on NE PEUT PAS modifier un materiel VALIDATED (certains champs, a completer TODO:) (sauf SUPERADMIN) | |
831 | + // 3) Test qu'on NE PEUT PAS modifier un materiel VALIDATED (certains champs, a completer TODO:) | |
832 | 832 | $data = [ |
833 | 833 | 'designation' => 'Matos Test 2 VALIDATED updated', |
834 | 834 | //'sur_categorie_id' => 1, |
... | ... | @@ -845,8 +845,11 @@ class MaterielsControllerTest extends General { |
845 | 845 | ]; |
846 | 846 | $this->post('/materiels/edit/2', $data); |
847 | 847 | $this->get('/materiels/index'); |
848 | + /* Exception pour Superadmin ? NON | |
848 | 849 | if ($role=="SUPER") $this->assertResponseContains("Matos Test 2 VALIDATED updated", "Le matériel VALIDATED édité n'a pas pu etre enregistré"); |
849 | 850 | else $this->assertResponseNotContains("Matos Test 2 VALIDATED updated", "Un matériel VALIDATED ne devrait pas pouvoir être modifié"); |
851 | + */ | |
852 | + $this->assertResponseNotContains("Matos Test 2 VALIDATED updated", "Un matériel VALIDATED ne devrait pas pouvoir être modifié"); | |
850 | 853 | |
851 | 854 | // 4) Test que un edit anormal ne fonctionne pas (erreur sur champ status) |
852 | 855 | $data = [ | ... | ... |