Commit 6b84d623882b501d2d0ff23a4d80471f1c86c05a

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

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
@@ -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
@@ -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)
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
@@ -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 &lt; ./script_sql/$s @@ -94,9 +94,9 @@ mysql $database --user=$username --password=$password -h $host &lt; ./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