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,13 +53,10 @@ Logiciel testé et validé sur les configurations suivantes : | ||
53 | 53 | ||
54 | VERSION ACTUELLE | 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 | Author: EP | 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 | IMPORTANT : | 61 | IMPORTANT : |
65 | - Pour connaitre la version actuelle, taper "./VERSION" | 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,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 | 25/03/2020 Version 3.7.9.9 (EP) | 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 | Comme pour les docs attachés (même principe) : | 102 | Comme pour les docs attachés (même principe) : |
100 | - refactorisation des actions add() et edit() en une seule add_or_edit() (car très semblables) | 103 | - refactorisation des actions add() et edit() en une seule add_or_edit() (car très semblables) |
101 | - refactorisation des vues add et edit en une seule add_edit (car très semblables) | 104 | - refactorisation des vues add et edit en une seule add_edit (car très semblables) |
102 | - debugging javascript en cours (car ça marchait pas très bien tout ça...) | 105 | - debugging javascript en cours (car ça marchait pas très bien tout ça...) |
103 | 106 | ||
104 | 24/03/2020 Version 3.7.9.8 (EP) | 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 | - pb javascript si métrologie | 109 | - pb javascript si métrologie |
107 | - ajout intitulé comme titre | 110 | - ajout intitulé comme titre |
108 | - vue édition : champs trop larges, champs éditables, champs inutiles... | 111 | - vue édition : champs trop larges, champs éditables, champs inutiles... |
109 | - ... | 112 | - ... |
110 | 113 | ||
111 | 23/03/2020 Version 3.7.9.7 (EP) | 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 | - Enorme simplification grâce à la refactorisation des vues add et edit en une seule add_edit car elles sont très semblables | 116 | - Enorme simplification grâce à la refactorisation des vues add et edit en une seule add_edit car elles sont très semblables |
114 | - TODO : faire la meme chose pour toutes les vues add et edit des différents objets (materiel, suivi, emprunt...) | 117 | - TODO : faire la meme chose pour toutes les vues add et edit des différents objets (materiel, suivi, emprunt...) |
115 | 118 | ||
116 | 20/03/2020 Version 3.7.9.6 (EP) | 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 | 16/03/2020 Version 3.7.9.5 (EP) | 122 | 16/03/2020 Version 3.7.9.5 (EP) |
120 | Premiers bugfixes du nouveau site responsive (5) | 123 | Premiers bugfixes du nouveau site responsive (5) |
src/Controller/DocumentsController.php
@@ -210,22 +210,33 @@ class DocumentsController extends AppController | @@ -210,22 +210,33 @@ class DocumentsController extends AppController | ||
210 | ])->first(); | 210 | ])->first(); |
211 | */ | 211 | */ |
212 | // $materiel | 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 | $this->set('_serialize', [ | 236 | $this->set('_serialize', [ |
227 | 'document' | 237 | 'document' |
228 | ]); | 238 | ]); |
239 | + */ | ||
229 | } | 240 | } |
230 | 241 | ||
231 | 242 | ||
@@ -272,6 +283,8 @@ class DocumentsController extends AppController | @@ -272,6 +283,8 @@ class DocumentsController extends AppController | ||
272 | if ($this->request->is(['post','patch','put'])) { | 283 | if ($this->request->is(['post','patch','put'])) { |
273 | 284 | ||
274 | $document = $this->Documents->patchEntity($document, $this->request->getData()); | 285 | $document = $this->Documents->patchEntity($document, $this->request->getData()); |
286 | + //debug($document); | ||
287 | + //exit; | ||
275 | 288 | ||
276 | if ($IS_ADD) { | 289 | if ($IS_ADD) { |
277 | /* | 290 | /* |
@@ -286,17 +299,17 @@ class DocumentsController extends AppController | @@ -286,17 +299,17 @@ class DocumentsController extends AppController | ||
286 | } | 299 | } |
287 | 300 | ||
288 | // SAVE | 301 | // SAVE |
289 | - $action = $IS_ADD ? 'ajouté' : 'modifié'; | 302 | + $verb = $IS_ADD ? 'ajouté' : 'modifié'; |
290 | // - NOT SAVED | 303 | // - NOT SAVED |
291 | if (! $this->Documents->save($document)) { | 304 | if (! $this->Documents->save($document)) { |
292 | //$this->myDebug($document->getErrors()); | 305 | //$this->myDebug($document->getErrors()); |
293 | //debug($document->getErrors()); | 306 | //debug($document->getErrors()); |
294 | //debug($document); | 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 | // - SAVED ok | 310 | // - SAVED ok |
298 | else { | 311 | else { |
299 | - $this->Flash->success(__("Le fichier a bien été $action")); | 312 | + $this->Flash->success(__("Le fichier a bien été $verb")); |
300 | //$id = $document->materiel_id; | 313 | //$id = $document->materiel_id; |
301 | $parent_id = $document->materiel_id; | 314 | $parent_id = $document->materiel_id; |
302 | 315 |
src/Controller/EmpruntsController.php
@@ -150,11 +150,19 @@ class EmpruntsController extends AppController | @@ -150,11 +150,19 @@ class EmpruntsController extends AppController | ||
150 | if ($this->request->is(['patch','post','put'])) { | 150 | if ($this->request->is(['patch','post','put'])) { |
151 | //$entity = $this->Emprunts->patchEntity($suivi, $this->request->getData()); | 151 | //$entity = $this->Emprunts->patchEntity($suivi, $this->request->getData()); |
152 | $entity = $this->$controller->patchEntity($entity, $this->request->getData()); | 152 | $entity = $this->$controller->patchEntity($entity, $this->request->getData()); |
153 | + $verb = $IS_ADD ? 'ajouté' : 'modifié'; | ||
153 | // SAVED OK | 154 | // SAVED OK |
154 | //if ($this->Emprunts->save($suivi)) { | 155 | //if ($this->Emprunts->save($suivi)) { |
155 | - if ($this->save($entity)) { | ||
156 | - $verb = $IS_ADD ? 'ajouté' : 'modifié'; | 156 | + if ($this->$controller->save($entity)) { |
157 | $this->Flash->success(__("L'emprunt a bien été $verb")); | 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 | // ADD | 166 | // ADD |
159 | if ($IS_ADD) return $this->redirect([ | 167 | if ($IS_ADD) return $this->redirect([ |
160 | 'controller' => 'Materiels', | 168 | 'controller' => 'Materiels', |
@@ -163,11 +171,12 @@ class EmpruntsController extends AppController | @@ -163,11 +171,12 @@ class EmpruntsController extends AppController | ||
163 | ]); | 171 | ]); |
164 | // EDIT | 172 | // EDIT |
165 | else $this->setAction('view', $id); | 173 | else $this->setAction('view', $id); |
166 | - /* equivalent à | 174 | + /S equivalent à |
167 | else return $this->redirect([ | 175 | else return $this->redirect([ |
168 | 'action' => 'view', | 176 | 'action' => 'view', |
169 | $id | 177 | $id |
170 | ]); | 178 | ]); |
179 | + S/ | ||
171 | */ | 180 | */ |
172 | } | 181 | } |
173 | // SAVED KO | 182 | // SAVED KO |
@@ -225,7 +234,7 @@ class EmpruntsController extends AppController | @@ -225,7 +234,7 @@ class EmpruntsController extends AppController | ||
225 | ]); | 234 | ]); |
226 | 235 | ||
227 | $this->set(compact( | 236 | $this->set(compact( |
228 | - 'IS_ADD', 'IS_EDIT', | 237 | + 'IS_ADD', |
229 | 238 | ||
230 | //'emprunt', // @deprecated | 239 | //'emprunt', // @deprecated |
231 | 'entity', // nouveau nom | 240 | 'entity', // nouveau nom |
@@ -428,9 +437,12 @@ class EmpruntsController extends AppController | @@ -428,9 +437,12 @@ class EmpruntsController extends AppController | ||
428 | } else { | 437 | } else { |
429 | $this->Flash->error(__('L\'emprunt n\'a pas pu être supprimé.')); | 438 | $this->Flash->error(__('L\'emprunt n\'a pas pu être supprimé.')); |
430 | } | 439 | } |
440 | + $this->setAction('index'); | ||
441 | + /* equivaut à | ||
431 | return $this->redirect([ | 442 | return $this->redirect([ |
432 | 'action' => 'index' | 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,30 +242,47 @@ class SuivisController extends AppController | ||
242 | $suivi->typemesure = "Indirect"; | 242 | $suivi->typemesure = "Indirect"; |
243 | $suivi->panne_resolu = false; | 243 | $suivi->panne_resolu = false; |
244 | } | 244 | } |
245 | + $verb = $IS_ADD ? 'ajouté' : 'modifié'; | ||
245 | // SAVED OK | 246 | // SAVED OK |
246 | if ($this->Suivis->save($suivi)) { | 247 | if ($this->Suivis->save($suivi)) { |
247 | - $verb = $IS_ADD ? 'ajouté' : 'modifié'; | ||
248 | $this->Flash->success(__("Le suivi a bien été $verb")); | 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 | 'controller' => 'Materiels', | 255 | 'controller' => 'Materiels', |
252 | 'action' => 'view', | 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 | else return $this->redirect([ | 269 | else return $this->redirect([ |
257 | 'action' => 'index', | 270 | 'action' => 'index', |
258 | $id | 271 | $id |
259 | ]); | 272 | ]); |
273 | + S/ | ||
274 | + */ | ||
260 | } | 275 | } |
261 | // SAVED KO | 276 | // SAVED KO |
262 | else { | 277 | else { |
263 | $this->Flash->error(__("Le suivi n'a pas pu être $verb")); | 278 | $this->Flash->error(__("Le suivi n'a pas pu être $verb")); |
279 | + /* | ||
264 | if ($IS_ADD) return $this->redirect([ | 280 | if ($IS_ADD) return $this->redirect([ |
265 | 'controller' => 'Materiels', | 281 | 'controller' => 'Materiels', |
266 | 'action' => 'view', | 282 | 'action' => 'view', |
267 | $this->request->getAttribute('params')['pass'][0] | 283 | $this->request->getAttribute('params')['pass'][0] |
268 | ]); | 284 | ]); |
285 | + */ | ||
269 | } | 286 | } |
270 | } // POST | 287 | } // POST |
271 | 288 | ||
@@ -387,7 +404,7 @@ class SuivisController extends AppController | @@ -387,7 +404,7 @@ class SuivisController extends AppController | ||
387 | //$parent_id = $materiel_id; | 404 | //$parent_id = $materiel_id; |
388 | $entity = $suivi; | 405 | $entity = $suivi; |
389 | $this->set(compact( | 406 | $this->set(compact( |
390 | - 'IS_ADD', 'IS_EDIT', | 407 | + 'IS_ADD', |
391 | 'unite', 'domaineresp', | 408 | 'unite', 'domaineresp', |
392 | 409 | ||
393 | //'suivi', // @deprecated | 410 | //'suivi', // @deprecated |
@@ -663,7 +680,7 @@ class SuivisController extends AppController | @@ -663,7 +680,7 @@ class SuivisController extends AppController | ||
663 | 'delete' | 680 | 'delete' |
664 | ]); | 681 | ]); |
665 | $suivi = $this->Suivis->get($id); | 682 | $suivi = $this->Suivis->get($id); |
666 | - $id=$suivi->materiel_id; | 683 | + $parent_id = $suivi->materiel_id; |
667 | if ($this->Suivis->delete($suivi)) { | 684 | if ($this->Suivis->delete($suivi)) { |
668 | $this->Flash->success(__('Le suivi a bien été supprimé.')); | 685 | $this->Flash->success(__('Le suivi a bien été supprimé.')); |
669 | } else { | 686 | } else { |
@@ -672,7 +689,7 @@ class SuivisController extends AppController | @@ -672,7 +689,7 @@ class SuivisController extends AppController | ||
672 | return $this->redirect([ | 689 | return $this->redirect([ |
673 | 'controller' => 'materiels', | 690 | 'controller' => 'materiels', |
674 | 'action' => 'view', | 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,7 +77,7 @@ class EmpruntsTable extends AppTable | ||
77 | */ | 77 | */ |
78 | 78 | ||
79 | // Ce champ s'appelle "Pièce" (emprunt interne) | 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 | function ($context) { | 81 | function ($context) { |
82 | //if ($context['providers']['entity']['emprunt_interne'] !== null) { | 82 | //if ($context['providers']['entity']['emprunt_interne'] !== null) { |
83 | if ( !empty($context['data']) && !is_null($context['data']['emprunt_interne']) ) { | 83 | if ( !empty($context['data']) && !is_null($context['data']['emprunt_interne']) ) { |
@@ -216,7 +216,7 @@ class EmpruntsTable extends AppTable | @@ -216,7 +216,7 @@ class EmpruntsTable extends AppTable | ||
216 | }; | 216 | }; |
217 | $rules->add($checkSiteIsGiven, [ | 217 | $rules->add($checkSiteIsGiven, [ |
218 | 'errorField' => 'site_id', | 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 | <?php | 1 | <?php |
2 | // Variables passées à cette vue par le controleur | 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 | // add or edit mode ? true=add ; false=edit | 52 | // add or edit mode ? true=add ; false=edit |
4 | $IS_ADD = $IS_ADD; | 53 | $IS_ADD = $IS_ADD; |
54 | +$IS_EDIT = !$IS_ADD; | ||
5 | // objet document : si ADD : vide ; si EDIT : plein | 55 | // objet document : si ADD : vide ; si EDIT : plein |
6 | $document = $document; | 56 | $document = $document; |
7 | // - Liste des types de doc | 57 | // - Liste des types de doc |
@@ -17,7 +67,6 @@ $doc = 'un document'; | @@ -17,7 +67,6 @@ $doc = 'un document'; | ||
17 | if (isset($photo)) { | 67 | if (isset($photo)) { |
18 | $photo = $photo; | 68 | $photo = $photo; |
19 | $doc = 'une photo'; | 69 | $doc = 'une photo'; |
20 | - $idType = $idType; | ||
21 | // ADD only: | 70 | // ADD only: |
22 | if ($IS_ADD) $idType = $idType; | 71 | if ($IS_ADD) $idType = $idType; |
23 | } | 72 | } |
@@ -86,9 +135,9 @@ if (isset($photo)) { | @@ -86,9 +135,9 @@ if (isset($photo)) { | ||
86 | */ | 135 | */ |
87 | if ($IS_ADD) { | 136 | if ($IS_ADD) { |
88 | //$control_name = isset($materiel) ? 'materiel_id' : 'suivi_id'; | 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 | //$label = 'N° materiel labo'; | 139 | //$label = 'N° materiel labo'; |
91 | - echo $this->Form->hidden($control_name, [ | 140 | + echo $this->Form->hidden($field, [ |
92 | //'default' => $parent_id, | 141 | //'default' => $parent_id, |
93 | 'default' => $parent->id, | 142 | 'default' => $parent->id, |
94 | ]); | 143 | ]); |
@@ -102,17 +151,16 @@ if (isset($photo)) { | @@ -102,17 +151,16 @@ if (isset($photo)) { | ||
102 | 151 | ||
103 | // - Type (hidden si photo) | 152 | // - Type (hidden si photo) |
104 | echo "<i>(Si vous choisissez le type 'Photo', ce document sera affiché en tête de la fiche du $parent_type associé)</i>"; | 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 | $default = 1; | 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 | $default = $idType; | 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 | 'label' => 'Type', | 164 | 'label' => 'Type', |
117 | 'options' => $typesD, | 165 | 'options' => $typesD, |
118 | 'default' => $default // ADD only | 166 | 'default' => $default // ADD only |
@@ -122,8 +170,8 @@ if (isset($photo)) { | @@ -122,8 +170,8 @@ if (isset($photo)) { | ||
122 | echo $this->Form->control('description'); | 170 | echo $this->Form->control('description'); |
123 | 171 | ||
124 | // - File upload (chemin_file) | 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 | 'label' => 'Fichier (' . substr($configuration->taille_max_doc / (1024 * 1024), 0, 4) . ' Mo max)', | 175 | 'label' => 'Fichier (' . substr($configuration->taille_max_doc / (1024 * 1024), 0, 4) . ' Mo max)', |
128 | 'type' => 'file' | 176 | 'type' => 'file' |
129 | ]); | 177 | ]); |
src/Template/Documents/view.ctp
1 | <?php | 1 | <?php |
2 | // Variables passées à cette vue par le controleur | 2 | // Variables passées à cette vue par le controleur |
3 | $document = $document; | 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 | // Nouvelles variables définies pour cette vue | 9 | // Nouvelles variables définies pour cette vue |
6 | $photo_formats = ['png','jpg','jpeg']; | 10 | $photo_formats = ['png','jpg','jpeg']; |
@@ -51,26 +55,32 @@ $photo_formats = ['png','jpg','jpeg']; | @@ -51,26 +55,32 @@ $photo_formats = ['png','jpg','jpeg']; | ||
51 | 55 | ||
52 | <?php | 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 | 'controller' => 'Suivis', | 72 | 'controller' => 'Suivis', |
64 | 'action' => 'view', | 73 | 'action' => 'view', |
65 | - $suivi->id | 74 | + $parent->id |
66 | ])); | 75 | ])); |
67 | } | 76 | } |
77 | + */ | ||
68 | 78 | ||
69 | // - Nom du doc | 79 | // - Nom du doc |
70 | $displayElement(__('Nom'), h($document->nom)); | 80 | $displayElement(__('Nom'), h($document->nom)); |
71 | 81 | ||
72 | // - Type | 82 | // - Type |
73 | - debug($document); | 83 | + //debug($document); |
74 | $displayElement(__('Type'), $document->has('type_document') ? h($document->type_document->nom) : ''); | 84 | $displayElement(__('Type'), $document->has('type_document') ? h($document->type_document->nom) : ''); |
75 | 85 | ||
76 | /* | 86 | /* |
src/Template/Emprunts/add_edit.ctp
1 | <?php | 1 | <?php |
2 | // Variables passées à cette vue par le controleur | 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 | // add or edit mode ? true=add ; false=edit | 53 | // add or edit mode ? true=add ; false=edit |
5 | $IS_ADD = $IS_ADD; | 54 | $IS_ADD = $IS_ADD; |
6 | -$IS_EDIT = $IS_EDIT; | 55 | +$IS_EDIT = !$IS_ADD; |
7 | 56 | ||
8 | //debug($entity); | 57 | //debug($entity); |
9 | $entity = $entity; // nouveau nom | 58 | $entity = $entity; // nouveau nom |
@@ -26,6 +75,8 @@ $sites = $sites; | @@ -26,6 +75,8 @@ $sites = $sites; | ||
26 | 75 | ||
27 | $entity_name = 'emprunt'; | 76 | $entity_name = 'emprunt'; |
28 | 77 | ||
78 | +$parent_controller = 'materiels'; | ||
79 | + | ||
29 | // ADD only | 80 | // ADD only |
30 | if ($IS_ADD) { | 81 | if ($IS_ADD) { |
31 | $verb = 'Ajouter'; | 82 | $verb = 'Ajouter'; |
@@ -130,12 +181,17 @@ else { | @@ -130,12 +181,17 @@ else { | ||
130 | echo '<div id="interne" style="margin: 0; padding: 0; ' . $disp_interne . ';">'; | 181 | echo '<div id="interne" style="margin: 0; padding: 0; ' . $disp_interne . ';">'; |
131 | 182 | ||
132 | // - nom emprunteur interne (hidden only pour Utilisateur) | 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 | 'Responsable', | 188 | 'Responsable', |
135 | 'Administration', | 189 | 'Administration', |
136 | 'Administration Plus', | 190 | 'Administration Plus', |
137 | 'Super Administrateur' | 191 | 'Super Administrateur' |
138 | - ]))) { | 192 | + ])); |
193 | + */ | ||
194 | + if ($USER_IS_UTILISATEUR) { | ||
139 | $f = 'hidden'; | 195 | $f = 'hidden'; |
140 | $disabled = true; | 196 | $disabled = true; |
141 | } | 197 | } |
@@ -217,9 +273,17 @@ else { | @@ -217,9 +273,17 @@ else { | ||
217 | 273 | ||
218 | </fieldset> | 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 | </div> | 288 | </div> |
225 | 289 |
src/Template/Materiels/add.ctp
@@ -23,7 +23,7 @@ use Cake\ORM\TableRegistry; | @@ -23,7 +23,7 @@ use Cake\ORM\TableRegistry; | ||
23 | // 1) FROM AppController: | 23 | // 1) FROM AppController: |
24 | 24 | ||
25 | $PROFILE_USER = $PROFILE_USER; | 25 | $PROFILE_USER = $PROFILE_USER; |
26 | -$PROFILE_ADMIN = $PROFILE_USER; | 26 | +$PROFILE_ADMIN = $PROFILE_ADMIN; |
27 | $PROFILE_RESPONSABLE = $PROFILE_RESPONSABLE; | 27 | $PROFILE_RESPONSABLE = $PROFILE_RESPONSABLE; |
28 | $PROFILE_ADMINPLUS = $PROFILE_ADMINPLUS; | 28 | $PROFILE_ADMINPLUS = $PROFILE_ADMINPLUS; |
29 | $PROFILE_SUPERADMIN = $PROFILE_SUPERADMIN; | 29 | $PROFILE_SUPERADMIN = $PROFILE_SUPERADMIN; |
@@ -57,8 +57,8 @@ $idGmNa = $idGmNa; | @@ -57,8 +57,8 @@ $idGmNa = $idGmNa; | ||
57 | $idGtNa = $idGtNa; | 57 | $idGtNa = $idGtNa; |
58 | 58 | ||
59 | // ET AUSSI QUELQUES FONCTIONS : | 59 | // ET AUSSI QUELQUES FONCTIONS : |
60 | -// $displayElement() | ||
61 | -// $dateProchainControleVerif() | 60 | +$displayElement = $displayElement; |
61 | +$dateProchainControleVerif = $dateProchainControleVerif; | ||
62 | 62 | ||
63 | 63 | ||
64 | // 2) FROM my own controller (MaterielController): | 64 | // 2) FROM my own controller (MaterielController): |
src/Template/Suivis/add_edit.ctp
1 | <?php | 1 | <?php |
2 | // Variables passées à cette vue par le controleur | 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 | // add or edit mode ? true=add ; false=edit | 53 | // add or edit mode ? true=add ; false=edit |
5 | $IS_ADD = $IS_ADD; | 54 | $IS_ADD = $IS_ADD; |
6 | -$IS_EDIT = $IS_EDIT; | 55 | +$IS_EDIT = !$IS_ADD; |
7 | 56 | ||
57 | +//debug($entity); | ||
8 | $entity = $entity; // nouveau nom | 58 | $entity = $entity; // nouveau nom |
9 | $suivi = $entity; // @deprecated | 59 | $suivi = $entity; // @deprecated |
10 | $typeSuivis = $typeSuivis; | 60 | $typeSuivis = $typeSuivis; |
@@ -23,6 +73,7 @@ $groupesThematiques = $groupesThematiques; | @@ -23,6 +73,7 @@ $groupesThematiques = $groupesThematiques; | ||
23 | $groupesMetiers = $groupesMetiers; | 73 | $groupesMetiers = $groupesMetiers; |
24 | 74 | ||
25 | $entity_name = 'suivi'; | 75 | $entity_name = 'suivi'; |
76 | +$parent_controller = 'materiels'; | ||
26 | 77 | ||
27 | // ADD only | 78 | // ADD only |
28 | if ($IS_ADD) { | 79 | if ($IS_ADD) { |
@@ -122,7 +173,8 @@ else { | @@ -122,7 +173,8 @@ else { | ||
122 | //'disabled' => TRUE | 173 | //'disabled' => TRUE |
123 | // ADD only : | 174 | // ADD only : |
124 | 'default' => 3, | 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 | // ADD only | 180 | // ADD only |
@@ -342,10 +394,17 @@ else { | @@ -342,10 +394,17 @@ else { | ||
342 | 394 | ||
343 | </fieldset> | 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 | </div> | 409 | </div> |
351 | 410 |
tests/TestCase/Controller/MaterielsControllerTest.php
@@ -828,7 +828,7 @@ class MaterielsControllerTest extends General { | @@ -828,7 +828,7 @@ class MaterielsControllerTest extends General { | ||
828 | $this->get('/materiels/index'); | 828 | $this->get('/materiels/index'); |
829 | $this->assertResponseContains("Matos Test 2 VALIDATED", "Le matériel CREATED édité n'a pas pu etre passé à VALIDATED"); | 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 | $data = [ | 832 | $data = [ |
833 | 'designation' => 'Matos Test 2 VALIDATED updated', | 833 | 'designation' => 'Matos Test 2 VALIDATED updated', |
834 | //'sur_categorie_id' => 1, | 834 | //'sur_categorie_id' => 1, |
@@ -845,8 +845,11 @@ class MaterielsControllerTest extends General { | @@ -845,8 +845,11 @@ class MaterielsControllerTest extends General { | ||
845 | ]; | 845 | ]; |
846 | $this->post('/materiels/edit/2', $data); | 846 | $this->post('/materiels/edit/2', $data); |
847 | $this->get('/materiels/index'); | 847 | $this->get('/materiels/index'); |
848 | + /* Exception pour Superadmin ? NON | ||
848 | if ($role=="SUPER") $this->assertResponseContains("Matos Test 2 VALIDATED updated", "Le matériel VALIDATED édité n'a pas pu etre enregistré"); | 849 | if ($role=="SUPER") $this->assertResponseContains("Matos Test 2 VALIDATED updated", "Le matériel VALIDATED édité n'a pas pu etre enregistré"); |
849 | else $this->assertResponseNotContains("Matos Test 2 VALIDATED updated", "Un matériel VALIDATED ne devrait pas pouvoir être modifié"); | 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 | // 4) Test que un edit anormal ne fonctionne pas (erreur sur champ status) | 854 | // 4) Test que un edit anormal ne fonctionne pas (erreur sur champ status) |
852 | $data = [ | 855 | $data = [ |