Commit 32ea618670079f4f8da7f3930b6d69f4f97a96c7

Authored by Etienne Pallier
1 parent ee1665e9
Exists in master and in 1 other branch dev

Amélioration de la gestion des docs attachés grâce (3)

	- Enorme simplification grâce à la refactorisation des vues add et edit
en une seule add_edit (car elles sont très semblables)

	- TODO : faire la meme chose pour toutes les vues add et edit des
différents objets (materiel, suivi, emprunt...) car ça facilitera
grandement la maintenance future !!!
@@ -53,10 +53,12 @@ Logiciel testé et validé sur les configurations suivantes : @@ -53,10 +53,12 @@ Logiciel testé et validé sur les configurations suivantes :
53 53
54 VERSION ACTUELLE 54 VERSION ACTUELLE
55 55
56 -Date: 20/03/2020  
57 -Version: 3.7.9.6 56 +Date: 23/03/2020
  57 +Version: 3.7.9.7
58 Author: EP 58 Author: EP
59 -Commentaire: Amélioration et nombreux bugfixes de la gestion des docs attachés (2) 59 +Commentaire: Amélioration de la gestion des docs attachés grâce (3)
  60 + - Enorme simplification grâce à la refactorisation des vues add et edit en une seule add_edit car elles sont très semblables
  61 + - TODO : faire la meme chose pour toutes les vues add et edit des différents objets (materiel, suivi, emprunt...)
60 62
61 IMPORTANT : 63 IMPORTANT :
62 - Pour connaitre la version actuelle, taper "./VERSION" 64 - Pour connaitre la version actuelle, taper "./VERSION"
@@ -91,6 +93,10 @@ La liste ci-dessous n'est plus à jour, elle est désormais en ligne ici : https @@ -91,6 +93,10 @@ La liste ci-dessous n'est plus à jour, elle est désormais en ligne ici : https
91 93
92 ----------------------------------------------------------------------------------------------------------- 94 -----------------------------------------------------------------------------------------------------------
93 95
  96 +
  97 +20/03/2020 Version 3.7.9.6 (EP)
  98 + Amélioration et nombreux bugfixes de la gestion des docs attachés (2)
  99 +
94 16/03/2020 Version 3.7.9.5 (EP) 100 16/03/2020 Version 3.7.9.5 (EP)
95 Premiers bugfixes du nouveau site responsive (5) 101 Premiers bugfixes du nouveau site responsive (5)
96 - Nombreux bugfixes de la gestion des documents attachés (presque fini) 102 - Nombreux bugfixes de la gestion des documents attachés (presque fini)
src/Controller/DocumentsController.php
@@ -424,7 +424,7 @@ class DocumentsController extends AppController @@ -424,7 +424,7 @@ class DocumentsController extends AppController
424 $this->set('idType', $idType); 424 $this->set('idType', $idType);
425 } // ADD 425 } // ADD
426 426
427 - $this->set(compact('document', 'typesD')); 427 + $this->set(compact('IS_ADD', 'document', 'typesD'));
428 /* inutile 428 /* inutile
429 $this->set('_serialize', [ 429 $this->set('_serialize', [
430 'document' 430 'document'
src/Template/Documents/add.ctp
1 <?php 1 <?php
2 -// Variables passées à cette vue par le controleur  
3 -// - $document vide  
4 -$document = $document;  
5 -// - Liste des types de doc  
6 -$typesD = $typesD;  
7 -$configuration = $configuration;  
8 -$parent = $parent;  
9 -$doc_type = $doc_type;  
10 -$parent_controller = $parent_controller;  
11 -$parent_name = $parent_name;  
12 2
13 -// optionnel  
14 -$doc = 'un document';  
15 -if (isset($photo)) {  
16 - $photo = $photo;  
17 - $doc = 'une photo';  
18 - $idType = $idType;  
19 -}  
20 -/*  
21 -if (isset($materiel)) {  
22 - $materiel = $materiel;  
23 - $doc_type = 'matériel';  
24 - $parent = $materiel;  
25 - $parent_controller = 'Materiels';  
26 -}  
27 -if (isset($suivi)) {  
28 - $suivi = $suivi;  
29 - $doc_type = 'suivi';  
30 - $parent = $suivi;  
31 - $parent_controller = 'Suivis';  
32 -}  
33 -*/  
34 -//$parent_id = $this->request->getAttribute('params')['pass'][0];  
35 -  
36 -/*  
37 -debug($materiel);  
38 -debug($parent_id);  
39 -debug($document);  
40 -debug($typesD);  
41 -*/  
42 -?>  
43 -  
44 -<div class="documents form">  
45 -  
46 - <?php  
47 -  
48 - // Titre  
49 - echo "<h2><i class='icon-plus'></i> Lier $doc</h2>";  
50 -  
51 - // Ce doc est rattaché à ...  
52 - //$link = isset($materiel) ? $materiel->designation : 'Suivi '.$suivi->id;  
53 - $displayElement(__("Ce document est lié au $doc_type"), $this->Html->link($parent_name, [  
54 - 'controller' => $parent_controller,  
55 - 'action' => 'view',  
56 - $parent->id  
57 - ]));  
58 -  
59 - echo $this->Form->create($document, ['type' => 'file']);  
60 - ?>  
61 -  
62 - <fieldset>  
63 -  
64 - <?php  
65 -  
66 - // - N° materiel (ou suivi)  
67 - /*  
68 - $control_name = 'materiel_id';  
69 - $label = 'N° materiel labo';  
70 - if (isset($suivi)) {  
71 - $control_name = 'suivi_id';  
72 - $label = 'N° suivi';  
73 - }  
74 - echo $this->Form->control($control_name, [  
75 - 'label' => $label,  
76 - 'options' => $parent,  
77 - 'default' => $parent_id,  
78 - 'readonly' => true  
79 - ]);  
80 - */  
81 - //$control_name = isset($materiel) ? 'materiel_id' : 'suivi_id';  
82 - $control_name = $parent_controller=='materiels' ? 'materiel_id' : 'suivi_id';  
83 - //$label = 'N° materiel labo';  
84 - echo $this->Form->hidden($control_name, [  
85 - //'default' => $parent_id,  
86 - 'default' => $parent->id,  
87 - ]);  
88 -  
89 - // - Nom  
90 - echo $this->Form->control('nom');  
91 -  
92 - // - Type (hidden si photo)  
93 - echo "<i>(Si vous choisissez le type 'Photo', ce document sera affiché en tête de la fiche du $doc_type associé)</i>";  
94 - $f = 'control';  
95 - $default = 1;  
96 - if (isset($photo)) {  
97 - $f = 'hidden';  
98 - $default = $idType;  
99 - }  
100 - echo $this->Form->$f('type_document_id', [  
101 - 'label' => 'Type',  
102 - 'options' => $typesD,  
103 - 'default' => $default  
104 - ]);  
105 -  
106 - // - Description  
107 - echo $this->Form->control('description');  
108 -  
109 - // - File upload  
110 - echo $this->Form->control('chemin_file', [  
111 - 'label' => 'Fichier (' . substr($configuration->taille_max_doc / (1024 * 1024), 0, 4) . ' Mo max)',  
112 - 'type' => 'file'  
113 - ]);  
114 -  
115 - // - photo (hidden)  
116 - echo $this->Form->hidden('photo', [  
117 - 'default' => isset($photo) ? 1 : 0  
118 - ]);  
119 -  
120 - ?>  
121 -  
122 - </fieldset>  
123 -  
124 - <!-- BOUTONS submit & cancel -->  
125 - <!-- <= $this->Form->submit(__('Valider')) ?> -->  
126 - <?php $echoSubmitButtons($this,  
127 - 'view',  
128 - //$parent_id,  
129 - $parent->id,  
130 - $parent_controller  
131 - );  
132 -  
133 - echo $this->Form->end();  
134 - ?>  
135 -  
136 -</div>  
137 -  
138 -<!--  
139 -<div class="actions">  
140 - <php  
141 -echo $this->element('menu');  
142 -echo $this->element('menu_form', [  
143 - 'pluralHumanName' => 'Documents'  
144 -]);  
145 -?>  
146 -</div>  
147 --->  
148 \ No newline at end of file 3 \ No newline at end of file
  4 +$this->extend('/Documents/add_edit');
src/Template/Documents/edit.ctp
1 <?php 1 <?php
2 -// Variables passées à cette vue par le controleur  
3 -$document = $document;  
4 -// - Liste des types de doc  
5 -$typesD = $typesD;  
6 -$configuration = $configuration;  
7 -$parent = $parent;  
8 -$doc_type = $doc_type;  
9 -$parent_controller = $parent_controller;  
10 -$parent_name = $parent_name;  
11 2
12 -// Optionnel  
13 -$doc = 'un document';  
14 -if (isset($photo)) {  
15 - $photo = $photo;  
16 - $doc = 'une photo';  
17 -}  
18 -/*  
19 -if (isset($materiel)) {  
20 - $materiel = $materiel;  
21 - $doc_type = 'matériel';  
22 - $parent = $materiel;  
23 - $parent_controller = 'Materiels';  
24 - $parent_name = $parent->designation;  
25 -}  
26 -if (isset($suivi)) {  
27 - $suivi = $suivi;  
28 - $doc_type = 'suivi';  
29 - $parent = $suivi;  
30 - $parent_controller = 'Suivis';  
31 - $parent_name = 'Suivi#'.$parent->id;  
32 -}  
33 -*/  
34 -  
35 -// Nouvelles variables  
36 -//$parent_id = $parent->id;  
37 -  
38 -?>  
39 -  
40 -<div class="documents form">  
41 -  
42 - <?php  
43 -  
44 - // Titre  
45 - echo "<h2><i class='icon-plus'></i> Editer $doc</h2>";  
46 -  
47 - //$materiel = $materiel->toArray();  
48 - //debug($materiel);  
49 -  
50 - $displayElement(__("Ce document est lié au $doc_type"), $this->Html->link($parent_name, [  
51 - 'controller' => $parent_controller,  
52 - 'action' => 'view',  
53 - $parent->id  
54 - ]));  
55 -  
56 - echo $this->Form->create($document, ['type' => 'file']);  
57 - ?>  
58 -  
59 - <fieldset>  
60 - <?php  
61 -  
62 - //$doc_name = $document->materiel_id .'_' . $document->nom.'_'. $document->id . '.' . $document->type_doc;  
63 -  
64 -  
65 - /* (EP) INUTILE, JUNK  
66 - // N° materiel labo OU BIEN N° suivi :  
67 - // - N° materiel labo  
68 - if (isset($materiel)) {  
69 - echo $this->Form->control('materiel_id', [  
70 - 'label' => 'N° materiel labo',  
71 - 'options' => $materiel,  
72 - 'default' => $this->request->getAttribute('params')['pass'][0],  
73 - 'readonly' => true  
74 - ]);  
75 - }  
76 - // - N° suivi  
77 - else if (isset($suivi)) {  
78 - echo $this->Form->control('suivi_id', [  
79 - 'label' => 'N° suivi',  
80 - 'options' => $suivi,  
81 - 'default' => $this->request->getAttribute('params')['pass'][0],  
82 - 'readonly' => true  
83 - ]);  
84 - }  
85 - */  
86 -  
87 - // - Nom  
88 - // (Malik) On met le nom du doc en read only vu qu'il apparait dans le nom du fichier sur le serveur  
89 - // et une opération pour remodifier ces fichiers peut être complexe  
90 - echo $this->Form->control('nom', ['readonly' => true]);  
91 -  
92 - // - Type (hidden si photo)  
93 - echo "<i>(Si vous choisissez le type 'Photo', ce document sera affiché en tête de la fiche du $doc_type associé)</i>";  
94 - //$f = isset($photo) ? 'hidden' : 'control';  
95 - $f = 'control';  
96 - echo $this->Form->$f('type_document_id', [  
97 - 'label' => 'Type',  
98 - 'options' => $typesD  
99 - ]);  
100 -  
101 - // - Description  
102 - echo $this->Form->control('description');  
103 -  
104 - // - chemin_file (hidden)  
105 - echo $this->Form->hidden('chemin_file', [  
106 - 'label' => 'Fichier (' . substr($configuration->taille_max_doc / (1024 * 1024), 0, 4) . ' Mo max)',  
107 - 'type' => 'file'  
108 - ]);  
109 -  
110 - // - edit (hidden)  
111 - echo $this->Form->hidden('edit', [  
112 - 'default' => 1  
113 - ]);  
114 -  
115 - // - photo = 0 ou 1 (hidden)  
116 - echo $this->Form->hidden('photo', [  
117 - 'default' => isset($photo) ? 1 : 0  
118 - ]);  
119 -  
120 - ?>  
121 - </fieldset>  
122 -  
123 - <!-- BOUTONS submit & cancel -->  
124 - <!-- <= $this->Form->submit(__('Valider')) ?> -->  
125 - <?php $echoSubmitButtons($this,  
126 - 'view',  
127 - //$parent_id,  
128 - $parent->id,  
129 - $parent_controller  
130 - );  
131 -  
132 - echo $this->Form->end();  
133 - ?>  
134 -  
135 -</div>  
136 -  
137 -<!--  
138 -<div class="actions">  
139 - <php  
140 -echo $this->element('menu');  
141 -echo $this->element('menu_form', [  
142 - 'pluralHumanName' => 'Documents'  
143 -]);  
144 -?>  
145 -</div>  
146 ---> 3 +$this->extend('/Documents/add_edit');