Commit 6b84d623882b501d2d0ff23a4d80471f1c86c05a
1 parent
290e6ec2
Exists in
master
and in
1 other branch
amélioration affichage tableau stats (plus joli et lisible)
- et aussi : viré les 2 sudo à la fin de db-update => (A) Attention: Mise à jour BD ! v5.2.26-3.7.9
Showing
8 changed files
with
152 additions
and
122 deletions
Show diff stats
CHANGELOG
@@ -523,6 +523,7 @@ TODO : | @@ -523,6 +523,7 @@ TODO : | ||
523 | 523 | ||
524 | - fusionner elem/button_add_edit et MyHelper echoActionButton... | 524 | - fusionner elem/button_add_edit et MyHelper echoActionButton... |
525 | (ne garder que elem/) | 525 | (ne garder que elem/) |
526 | + | ||
526 | - séparer elem/button_add, button_edit, button_delete, et button_tout_court (générique) | 527 | - séparer elem/button_add, button_edit, button_delete, et button_tout_court (générique) |
527 | 528 | ||
528 | - short_role AppController ligne 819 => généraliser | 529 | - short_role AppController ligne 819 => généraliser |
@@ -535,14 +536,19 @@ TODO : | @@ -535,14 +536,19 @@ TODO : | ||
535 | 536 | ||
536 | - date en orange quand garantie PRESQUE finie (< 1 an), rouge quand finie | 537 | - date en orange quand garantie PRESQUE finie (< 1 an), rouge quand finie |
537 | 538 | ||
538 | - | ||
539 | - un champ obligatoire VIDE doit pouvoir être renseigné ! | 539 | - un champ obligatoire VIDE doit pouvoir être renseigné ! |
540 | 540 | ||
541 | +- améliorer affichage tableau stats : | ||
542 | + - 4415 matos en tout sur index, mais 4406 seulement dans stats | ||
541 | 543 | ||
542 | -======= CHANGES ======= | ||
543 | 544 | ||
544 | -26 | 545 | +======= CHANGES ======= |
545 | 546 | ||
547 | +------- | ||
548 | +10/11/2021 v5.2.26-3.7.9 | ||
549 | + - (e) amélioration affichage tableau stats (plus joli et lisible) | ||
550 | + - (i) viré les 2 sudo à la fin de db-update | ||
551 | + => (A) Attention: Mise à jour BD ! | ||
546 | 552 | ||
547 | ------- | 553 | ------- |
548 | 08/11/2021 v5.2.24-3.7.9 | 554 | 08/11/2021 v5.2.24-3.7.9 |
@@ -550,8 +556,8 @@ TODO : | @@ -550,8 +556,8 @@ TODO : | ||
550 | - (b) Bugfix : nouveau champ "resp_credit" ajouté dans BD (il avait été oublié depuis longtemps...) | 556 | - (b) Bugfix : nouveau champ "resp_credit" ajouté dans BD (il avait été oublié depuis longtemps...) |
551 | => du coup, ce champ n'était pas enregistré !!! | 557 | => du coup, ce champ n'était pas enregistré !!! |
552 | - (i) champ "budgets" désormais optionnel dans BD (il était obligatoire, pas cool) | 558 | - (i) champ "budgets" désormais optionnel dans BD (il était obligatoire, pas cool) |
553 | - => (A) Attention: Mettre à jour la BD ! | ||
554 | - | 559 | + => (A) Attention: Mise à jour BD ! |
560 | + | ||
555 | ------- | 561 | ------- |
556 | 05/11/2021 v5.2.23-3.7.9 | 562 | 05/11/2021 v5.2.23-3.7.9 |
557 | - GROSSE REFACTORISATION => vues et actions génériques | 563 | - GROSSE REFACTORISATION => vues et actions génériques |
README.md
@@ -52,8 +52,8 @@ Logiciel testé et validé sur les configurations suivantes : | @@ -52,8 +52,8 @@ Logiciel testé et validé sur les configurations suivantes : | ||
52 | 52 | ||
53 | -------------------------------------------------------------------------------------------- | 53 | -------------------------------------------------------------------------------------------- |
54 | 54 | ||
55 | -Date: 08/11/2021 | ||
56 | -Version: v5.2.25-3.7.9 | 55 | +Date: 10/11/2021 |
56 | +Version: v5.2.26-3.7.9 | ||
57 | 57 | ||
58 | 58 | ||
59 | HISTORIQUE DES CHANGEMENTS DE VERSION : voir le fichier CHANGES.txt (ou la page web /pages/changes) | 59 | HISTORIQUE DES CHANGEMENTS DE VERSION : voir le fichier CHANGES.txt (ou la page web /pages/changes) |
UPDATE
1 | #!/usr/bin/env bash | 1 | #!/usr/bin/env bash |
2 | 2 | ||
3 | +#export WITH_DOCKER=1 | ||
4 | +#[ -f ../docker-compose.yml ] && export WITH_DOCKER=0 | ||
5 | + | ||
3 | # $1 : Option "-c" pour CLEAN du fichier ftpf | 6 | # $1 : Option "-c" pour CLEAN du fichier ftpf |
4 | 7 | ||
5 | # Si docker et execution directe (hors conteneur) depuis le repertoire data/ (bind du repertoire docker) | 8 | # Si docker et execution directe (hors conteneur) depuis le repertoire data/ (bind du repertoire docker) |
6 | # => on rappelle ce meme script avec le CLI docker puis on exit | 9 | # => on rappelle ce meme script avec le CLI docker puis on exit |
7 | [ -f ../docker-compose.yml ] && (docker exec -it labinvent $0 $* ; true) && exit | 10 | [ -f ../docker-compose.yml ] && (docker exec -it labinvent $0 $* ; true) && exit |
11 | + | ||
8 | # Execution SANS docker, ou bien AVEC docker depuis le conteneur | 12 | # Execution SANS docker, ou bien AVEC docker depuis le conteneur |
13 | +#export WITH_DOCKER=0 | ||
9 | echo "IN $(pwd)" | 14 | echo "IN $(pwd)" |
10 | 15 | ||
11 | - | ||
12 | - | ||
13 | - | ||
14 | - | ||
15 | - | ||
16 | - | 16 | +#[[ $WITH_DOCKER == 0 ]] && echo "SANS docker" |
17 | +#[[ $WITH_DOCKER == 1 ]] && echo "AVEC docker" | ||
18 | + | ||
17 | cd install/ | 19 | cd install/ |
18 | ./update.sh $1 | 20 | ./update.sh $1 |
19 | 21 |
VERSION
@@ -83,7 +83,7 @@ echo | @@ -83,7 +83,7 @@ echo | ||
83 | # - tmp/cache : obligé d'utiliser sudo a cause des fichiers créés par le serveur web (appartiennent à _www sur Mac) | 83 | # - tmp/cache : obligé d'utiliser sudo a cause des fichiers créés par le serveur web (appartiennent à _www sur Mac) |
84 | SUDO='' | 84 | SUDO='' |
85 | which sudo > /dev/null && SUDO=sudo | 85 | which sudo > /dev/null && SUDO=sudo |
86 | -$SUDO chmod -R 777 ./tmp/cache/ | 86 | +chmod -R 777 ./tmp/cache/ || $SUDO chmod -R 777 ./tmp/cache/ |
87 | chmod -R 777 ./logs/ | 87 | chmod -R 777 ./logs/ |
88 | 88 | ||
89 | # On en profite pour nettoyer le cache, ca peut pas faire de mal | 89 | # On en profite pour nettoyer le cache, ca peut pas faire de mal |
database/update/db-update.sh
@@ -94,9 +94,9 @@ mysql $database --user=$username --password=$password -h $host < ./script_sql/$s | @@ -94,9 +94,9 @@ mysql $database --user=$username --password=$password -h $host < ./script_sql/$s | ||
94 | rm -f ./script_sql/$sqlscript_name-build.sql | 94 | rm -f ./script_sql/$sqlscript_name-build.sql |
95 | 95 | ||
96 | echo "Suppression du cache (mot passe sudo eventuellement necessaire)" | 96 | echo "Suppression du cache (mot passe sudo eventuellement necessaire)" |
97 | -sudo rm -f ../../tmp/cache/models/* | 97 | +rm -f ../../tmp/cache/models/* || sudo rm -f ../../tmp/cache/models/* |
98 | # Vraiment utile ? | 98 | # Vraiment utile ? |
99 | -sudo rm -f ../../tmp/cache/persistent/* | 99 | +rm -f ../../tmp/cache/persistent/* || sudo rm -f ../../tmp/cache/persistent/* |
100 | #ls -l ./script_sql/ | 100 | #ls -l ./script_sql/ |
101 | 101 | ||
102 | # Faire ca aussi si ca suffit pas... | 102 | # Faire ca aussi si ca suffit pas... |
install/update.sh
@@ -14,6 +14,9 @@ | @@ -14,6 +14,9 @@ | ||
14 | # (Bash Arrays : cf https://www.cyberciti.biz/faq/finding-bash-shell-array-length-elements/) | 14 | # (Bash Arrays : cf https://www.cyberciti.biz/faq/finding-bash-shell-array-length-elements/) |
15 | 15 | ||
16 | 16 | ||
17 | +#[[ $WITH_DOCKER == 0 ]] && echo "SANS docker" | ||
18 | +#[[ $WITH_DOCKER == 1 ]] && echo "AVEC docker" | ||
19 | + | ||
17 | # Version pour MacOS si MACOS=1 | 20 | # Version pour MacOS si MACOS=1 |
18 | MACOS=0 | 21 | MACOS=0 |
19 | #MACOS=1 | 22 | #MACOS=1 |
src/Template/Documents/add_edit.ctp
@@ -149,7 +149,7 @@ if (isset($photo)) { | @@ -149,7 +149,7 @@ if (isset($photo)) { | ||
149 | // et une opération pour remodifier ces fichiers peut être complexe | 149 | // et une opération pour remodifier ces fichiers peut être complexe |
150 | //echo $this->Form->control('nom', ['readonly' => !$IS_ADD]); | 150 | //echo $this->Form->control('nom', ['readonly' => !$IS_ADD]); |
151 | echo $this->Form->control('nom',[ | 151 | echo $this->Form->control('nom',[ |
152 | - 'label' => 'Nom du doc attaché', | 152 | + 'label' => 'Nom du doc attaché (sans espace)', |
153 | 'readonly' => !$IS_ADD | 153 | 'readonly' => !$IS_ADD |
154 | ]); | 154 | ]); |
155 | 155 |
src/Template/Pages/stats.ctp
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | + | ||
3 | //use SebastianBergmann\CodeCoverage\Report\PHP; | 4 | //use SebastianBergmann\CodeCoverage\Report\PHP; |
4 | 5 | ||
5 | /* | 6 | /* |
@@ -59,6 +60,22 @@ function echoAsPctAndBold($nbelem, $total=null, $is_bold=false) { | @@ -59,6 +60,22 @@ function echoAsPctAndBold($nbelem, $total=null, $is_bold=false) { | ||
59 | } | 60 | } |
60 | 61 | ||
61 | 62 | ||
63 | +// LIGNE VIDE DE SÉPARATION | ||
64 | +function displayEmptyLine() { | ||
65 | + echo " | ||
66 | + <tr style='height:5px ; background-color:black'> | ||
67 | + <td></td> | ||
68 | + <td></td> | ||
69 | + <td></td> | ||
70 | + <td></td> | ||
71 | + <td></td> | ||
72 | + <td></td> | ||
73 | + <td></td> | ||
74 | + <td></td> | ||
75 | + <td></td> | ||
76 | + </tr>"; | ||
77 | +} | ||
78 | + | ||
62 | 79 | ||
63 | //function displayStatsLine($title, $line, $suivis, $prets, $bold=false, $year_prev=null, $avg=null) { | 80 | //function displayStatsLine($title, $line, $suivis, $prets, $bold=false, $year_prev=null, $avg=null) { |
64 | function displayStatsLine($title, $line, $is_bold=false, $year_prev=null, $avg=null) { | 81 | function displayStatsLine($title, $line, $is_bold=false, $year_prev=null, $avg=null) { |
@@ -126,6 +143,22 @@ function displayStatsLine($title, $line, $is_bold=false, $year_prev=null, $avg=n | @@ -126,6 +143,22 @@ function displayStatsLine($title, $line, $is_bold=false, $year_prev=null, $avg=n | ||
126 | ---------------------------------------- | 143 | ---------------------------------------- |
127 | --> | 144 | --> |
128 | 145 | ||
146 | +<style> | ||
147 | +table.stats { | ||
148 | + border: 5px solid #333; | ||
149 | +} | ||
150 | +table.stats td { | ||
151 | + border: 2px solid #333; | ||
152 | +} | ||
153 | + | ||
154 | +table.stats thead th { | ||
155 | + border: 2px solid #333; | ||
156 | + text-align: center; | ||
157 | + #background-color: blue; | ||
158 | + #color: white; | ||
159 | +} | ||
160 | +</style> | ||
161 | + | ||
129 | <h2> | 162 | <h2> |
130 | <!-- | 163 | <!-- |
131 | <i class="icon-print"></i> | 164 | <i class="icon-print"></i> |
@@ -139,26 +172,27 @@ function displayStatsLine($title, $line, $is_bold=false, $year_prev=null, $avg=n | @@ -139,26 +172,27 @@ function displayStatsLine($title, $line, $is_bold=false, $year_prev=null, $avg=n | ||
139 | <td><b>Prendre en compte les</b></td> | 172 | <td><b>Prendre en compte les</b></td> |
140 | <td> | 173 | <td> |
141 | <?php | 174 | <?php |
142 | - echo $this->Form->create('Statistiques', [ | ||
143 | - 'type' => 'get', | ||
144 | - ]); | ||
145 | - //echo '<input name="s_all_2" class="search-input" type="text" id="MaterielSAll">'; | ||
146 | - echo $this->Form->control('nbyears', [ | 175 | +echo $this->Form->create('Statistiques', [ |
176 | + 'type' => 'get', | ||
177 | +]); | ||
178 | + //echo '<input name="s_all_2" class="search-input" type="text" id="MaterielSAll">'; | ||
179 | + echo $this->Form->control('nbyears', [ | ||
147 | 'id' => 'nby', | 180 | 'id' => 'nby', |
148 | //'class' => 'search-input', | 181 | //'class' => 'search-input', |
149 | 'label' => '', | 182 | 'label' => '', |
150 | //'type' => 'text', | 183 | //'type' => 'text', |
151 | 'default' => $nbyears | 184 | 'default' => $nbyears |
152 | - ]); | ||
153 | - /* | ||
154 | - echo $this->Form->submit('Chercher', [ | ||
155 | - 'name' => 'MaterielSAll', | ||
156 | - 'id' => 'MaterielSAll', | ||
157 | - 'style' => 'margin: 0px;' | ||
158 | - ]); | ||
159 | - */ | ||
160 | - echo $this->Form->end(); | 185 | + ]); |
186 | + /* | ||
187 | + echo $this->Form->submit('Chercher', [ | ||
188 | + 'name' => 'MaterielSAll', | ||
189 | + 'id' => 'MaterielSAll', | ||
190 | + 'style' => 'margin: 0px;' | ||
191 | + ]); | ||
192 | + */ | ||
193 | +echo $this->Form->end(); | ||
161 | ?> | 194 | ?> |
195 | + | ||
162 | </td> | 196 | </td> |
163 | <td><b>dernières années (<?=$current_year.'-'.$year_min?>)</b></td> | 197 | <td><b>dernières années (<?=$current_year.'-'.$year_min?>)</b></td> |
164 | </tr> | 198 | </tr> |
@@ -166,105 +200,90 @@ function displayStatsLine($title, $line, $is_bold=false, $year_prev=null, $avg=n | @@ -166,105 +200,90 @@ function displayStatsLine($title, $line, $is_bold=false, $year_prev=null, $avg=n | ||
166 | </p> | 200 | </p> |
167 | 201 | ||
168 | 202 | ||
169 | -<table border=2> | 203 | +<table class="stats"> |
170 | 204 | ||
205 | + <!-- TITRES COLONNES sur 2 lignes --> | ||
171 | <thead> | 206 | <thead> |
172 | - <!-- TITRES COLONNES sur 2 lignes --> | ||
173 | - <!-- | ||
174 | - <tr> | ||
175 | - <th> </th> | ||
176 | - <th>Evolution \ N-1</th> | ||
177 | - <th>Evolution \ moyenne</th> | ||
178 | - <th>Matériels acquis</th> | ||
179 | - <th>Validés</th> | ||
180 | - <th>En demande d'archivage</th> | ||
181 | - <th>Archivés</th> | ||
182 | - <th>Matériels suivis</th> | ||
183 | - <th>Matériels empruntés</th> | ||
184 | - </tr> | ||
185 | - --> | ||
186 | - <tr> | ||
187 | - | ||
188 | - <th> </th> | ||
189 | - | ||
190 | - <th colspan="3" align="center">Matériels acquis</th> | ||
191 | - <!-- | ||
192 | - <th></th> | ||
193 | - <th></th> | ||
194 | - --> | ||
195 | - | ||
196 | - <th colspan="3">Répartition par statut</th> | ||
197 | - <!-- | ||
198 | - <th></th> | ||
199 | - <th></th> | ||
200 | - --> | ||
201 | - | ||
202 | - <th colspan="2">Suivis et Emprunts</th> | ||
203 | - | ||
204 | - </tr> | ||
205 | - | ||
206 | - <tr> | ||
207 | - | ||
208 | - <th> </th> | ||
209 | - | ||
210 | - <th>Evol. \ N-1</th> | ||
211 | - <th>Evol. \ moyenne</th> | ||
212 | - <th>Total</th> | ||
213 | - | ||
214 | - <th>Validés</th> | ||
215 | - <th>A archiver</th> | ||
216 | - <th>Archivés</th> | ||
217 | - | ||
218 | - <th>Matériels suivis</th> | ||
219 | - <th>Matériels prêtés</th> | ||
220 | - | ||
221 | - </tr> | 207 | + |
208 | + <!-- | ||
209 | + <tr> | ||
210 | + <th> </th> | ||
211 | + <th>Evolution \ N-1</th> | ||
212 | + <th>Evolution \ moyenne</th> | ||
213 | + <th>Matériels acquis</th> | ||
214 | + <th>Validés</th> | ||
215 | + <th>En demande d'archivage</th> | ||
216 | + <th>Archivés</th> | ||
217 | + <th>Matériels suivis</th> | ||
218 | + <th>Matériels empruntés</th> | ||
219 | + </tr> | ||
220 | + --> | ||
221 | + <tr> | ||
222 | + <th> </th> | ||
223 | + <th colspan="3" align="center">Matériels acquis</th> | ||
224 | + <!-- | ||
225 | + <th></th> | ||
226 | + <th></th> | ||
227 | + --> | ||
228 | + <th colspan="3">Répartition par statut</th> | ||
229 | + <!-- | ||
230 | + <th></th> | ||
231 | + <th></th> | ||
232 | + --> | ||
233 | + <th colspan="2">Suivis et Emprunts</th> | ||
234 | + </tr> | ||
235 | + | ||
236 | + <tr> | ||
237 | + <th> </th> | ||
238 | + | ||
239 | + <th>Evol. \ N-1</th> | ||
240 | + <th>Evol. \ moyenne</th> | ||
241 | + <th>Total</th> | ||
242 | + | ||
243 | + <th>Validés</th> | ||
244 | + <th>A archiver</th> | ||
245 | + <th>Archivés</th> | ||
246 | + | ||
247 | + <th>Matériels suivis</th> | ||
248 | + <th>Matériels prêtés</th> | ||
249 | + </tr> | ||
222 | 250 | ||
223 | </thead> | 251 | </thead> |
224 | 252 | ||
225 | <!-- LIGNES DATA --> | 253 | <!-- LIGNES DATA --> |
226 | <tbody> | 254 | <tbody> |
227 | - <?php | ||
228 | - | ||
229 | - displayStatsLine("Moyenne annuelle", $avg, true); | ||
230 | - //displayStatsLine("Moyenne annuelle (sur les $nbyears dernières années)", $avg, true); | ||
231 | - //displayStatsLine("Moyenne annuelle (sur toutes les années sauf 1ère et dernière)", $avg, true); | ||
232 | - | ||
233 | - displayStatsLine('Total Général', $tot, true); | ||
234 | - //displayStatsLine('Total Sauf 1ère et dernière années', $tot2, true); | ||
235 | 255 | ||
236 | - ?> | ||
237 | - | ||
238 | - <!-- LIGNE VIDE DE SÉPARATION --> | ||
239 | - <tr> | ||
240 | - <td></td> | ||
241 | - <td></td> | ||
242 | - <td></td> | ||
243 | - <td></td> | ||
244 | - <td></td> | ||
245 | - <td></td> | ||
246 | - <td></td> | ||
247 | - <td></td> | ||
248 | - </tr> | ||
249 | - | ||
250 | - <!-- ANNÉE PAR ANNÉE (1 ligne par année) --> | ||
251 | - <?php | ||
252 | - /* | ||
253 | - foreach ($years as $y=>$val) { | ||
254 | - $year_title = $y; | ||
255 | - if ($y==$year) $year_title = "Année en cours ($y)"; | ||
256 | - displayStatsLine($year_title, $val); | ||
257 | - } | ||
258 | - */ | ||
259 | - for ($y=$current_year ; $y>=$year_min ; $y--) { | ||
260 | - $val = $years[$y]; | ||
261 | - $year_title = $y; | ||
262 | - if ($y==$current_year) $year_title = "Année en cours ($y)"; | ||
263 | - $year_prev = $y==$year_min ? null : $years[$y-1]; | ||
264 | - displayStatsLine($year_title, $val, false, $year_prev, $avg); | ||
265 | - } | ||
266 | - | ||
267 | - ?> | 256 | + <?php |
257 | + | ||
258 | + displayEmptyLine(); | ||
259 | + | ||
260 | + displayStatsLine("Moyenne annuelle", $avg, true); | ||
261 | + //displayStatsLine("Moyenne annuelle (sur les $nbyears dernières années)", $avg, true); | ||
262 | + //displayStatsLine("Moyenne annuelle (sur toutes les années sauf 1ère et dernière)", $avg, true); | ||
263 | + | ||
264 | + displayStatsLine('Total Général', $tot, true); | ||
265 | + //displayStatsLine('Total Sauf 1ère et dernière années', $tot2, true); | ||
266 | + | ||
267 | + // LIGNE VIDE DE SÉPARATION | ||
268 | + displayEmptyLine(); | ||
269 | + | ||
270 | + // DATA, ANNÉE PAR ANNÉE (1 ligne par année) | ||
271 | + /* | ||
272 | + foreach ($years as $y=>$val) { | ||
273 | + $year_title = $y; | ||
274 | + if ($y==$year) $year_title = "Année en cours ($y)"; | ||
275 | + displayStatsLine($year_title, $val); | ||
276 | + } | ||
277 | + */ | ||
278 | + for ($y=$current_year ; $y>=$year_min ; $y--) { | ||
279 | + $val = $years[$y]; | ||
280 | + $year_title = $y; | ||
281 | + if ($y==$current_year) $year_title = "Année en cours ($y)"; | ||
282 | + $year_prev = $y==$year_min ? null : $years[$y-1]; | ||
283 | + displayStatsLine($year_title, $val, false, $year_prev, $avg); | ||
284 | + } | ||
285 | + | ||
286 | + ?> | ||
268 | 287 | ||
269 | </tbody> | 288 | </tbody> |
270 | 289 |