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 !!!
README.md
... ... @@ -53,10 +53,12 @@ Logiciel testé et validé sur les configurations suivantes :
53 53  
54 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 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 63 IMPORTANT :
62 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 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 100 16/03/2020 Version 3.7.9.5 (EP)
95 101 Premiers bugfixes du nouveau site responsive (5)
96 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 424 $this->set('idType', $idType);
425 425 } // ADD
426 426  
427   - $this->set(compact('document', 'typesD'));
  427 + $this->set(compact('IS_ADD', 'document', 'typesD'));
428 428 /* inutile
429 429 $this->set('_serialize', [
430 430 'document'
... ...
src/Template/Documents/add.ctp
1 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 3 \ No newline at end of file
  4 +$this->extend('/Documents/add_edit');
... ...
src/Template/Documents/edit.ctp
1 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');
... ...