Commit 48227abd5cccaa512aa261758398850811690590
1 parent
7ad929d7
Exists in
master
and in
1 other branch
Optimisation, bugfix, et amélioration des pages de listes utilisateurs
...et responsables => refactorisées en 1 seule action index() (index_recap() virée) et 1 seule vue index.ctp (index_recap.ctp virée) + bugfix tri colonnes de la liste des materiels v4.105.14-3.7.9
Showing
6 changed files
with
85 additions
and
21 deletions
Show diff stats
CHANGES.txt
... | ... | @@ -120,6 +120,12 @@ Outre ces changements, voici d'autres changements importants : |
120 | 120 | ======= CHANGES ======= |
121 | 121 | |
122 | 122 | ------- |
123 | +09/10/2020 v4.105.14-3.7.9 (EP) | |
124 | + - (e) Optimisation, bugfix, et amélioration des pages de listes utilisateurs et responsables | |
125 | + => refactorisées en 1 seule action index() (index_recap() virée) et 1 seule vue index.ctp (index_recap.ctp virée) | |
126 | + - (b) bugfix tri colonnes de la liste des materiels | |
127 | + | |
128 | +------- | |
123 | 129 | 09/10/2020 v4.105.13-3.7.9 (EP) |
124 | 130 | - (b) bugfix requete sql db-update-2020-06-10.sql |
125 | 131 | - (i) requete sql corrective | ... | ... |
README.md
... | ... | @@ -42,8 +42,8 @@ Logiciel testé et validé sur les configurations suivantes : |
42 | 42 | |
43 | 43 | -------------------------------------------------------------------------------------------- |
44 | 44 | |
45 | -Date: 09/10/2020 | |
46 | -Version: 4.105.13-3.7.9 | |
45 | +Date: 12/10/2020 | |
46 | +Version: 4.105.14-3.7.9 | |
47 | 47 | |
48 | 48 | |
49 | 49 | HISTORIQUE DES CHANGEMENTS DE VERSION : voir le fichier CHANGES.txt (ou la page web /pages/changes) | ... | ... |
src/Controller/MaterielsController.php
... | ... | @@ -877,6 +877,7 @@ class MaterielsController extends AppController { |
877 | 877 | { |
878 | 878 | $this->myDebug("step 3: MaterielsController.index()"); |
879 | 879 | |
880 | + //debug($this->request); | |
880 | 881 | $conditions = []; |
881 | 882 | //$contain = []; |
882 | 883 | $contain = ['Fournisseurs', 'Categories', 'Organismes', 'Projets', 'Users']; |
... | ... | @@ -1251,9 +1252,11 @@ class MaterielsController extends AppController { |
1251 | 1252 | $materiels = $this->paginate($materiels, [ |
1252 | 1253 | 'limit' => $limit, |
1253 | 1254 | 'maxLimit' => 1000, |
1255 | + /* ATTENTION, ca rentre en conflit avec la colonne de tri numero_laboratoire... | |
1254 | 1256 | 'order' => [ |
1255 | 1257 | 'Materiels.numero_laboratoire' => 'desc' |
1256 | 1258 | ], |
1259 | + */ | |
1257 | 1260 | 'sortWhitelist' => [ |
1258 | 1261 | 'designation', |
1259 | 1262 | 'numero_laboratoire', | ... | ... |
src/Controller/UsersController.php
... | ... | @@ -206,6 +206,9 @@ class UsersController extends AppController |
206 | 206 | */ |
207 | 207 | public function index() { |
208 | 208 | |
209 | + $filtre = $this->request->getQuery('filtre'); | |
210 | + //debug($this->viewVars); | |
211 | + | |
209 | 212 | // Si on est sur l'instance de l'IRAP (InventIrap), |
210 | 213 | // on affiche l'url vers la page de l'ANNUAIRE du site web du labo |
211 | 214 | $lab_website_urls = ($this->confLabinvent->labNameShort != 'IRAP') ? [] : [ |
... | ... | @@ -229,8 +232,34 @@ class UsersController extends AppController |
229 | 232 | ]; |
230 | 233 | */ |
231 | 234 | |
235 | + $this->paginate = [ | |
236 | + 'contain' => [ | |
237 | + 'GroupesMetiers', | |
238 | + 'GroupesThematiques', | |
239 | + 'SurCategories' | |
240 | + ], | |
241 | + 'sortWhitelist' => [ | |
242 | + 'nom', | |
243 | + 'email', | |
244 | + 'role', | |
245 | + 'GroupesThematiques.nom', | |
246 | + 'GroupesMetiers.nom', | |
247 | + 'SurCategories.nom', | |
248 | + ], | |
249 | + 'limit' => 20, | |
250 | + /* | |
251 | + 'order' => [ | |
252 | + 'Users.nom' => 'asc' | |
253 | + ] | |
254 | + */ | |
255 | + ]; | |
256 | + | |
257 | + $conditions = $filtre ? ['role =' => 'Responsable'] : []; | |
258 | + $entities = $this->paginate($this->Users->find('all', [ | |
259 | + 'conditions' => $conditions | |
260 | + ])); | |
232 | 261 | // ALL users |
233 | - $entities = $this->paginate(); | |
262 | + //$entities = $this->paginate(); | |
234 | 263 | // ce qui revient au même que : |
235 | 264 | //$users = $this->paginate($this->Users); |
236 | 265 | // Only priviledged users |
... | ... | @@ -239,11 +268,11 @@ class UsersController extends AppController |
239 | 268 | // Affichage informations disponible pour l'utilisateur connecté |
240 | 269 | $this->myDebug($this->LdapAuth->user()); |
241 | 270 | |
242 | - $this->set('nbUsers', $this->Users->find()->count()); | |
271 | + //////$this->set('nbUsers', $this->Users->find()->count()); | |
243 | 272 | //$this->set('nbUsers', $this->Users->find('all')->count()); |
244 | 273 | //$this->set('nbUsers', $priviledgedUsers->count()); |
245 | 274 | |
246 | - $this->set(compact('entities', 'lab_website_urls')); | |
275 | + $this->set(compact('entities', 'lab_website_urls', 'filtre')); | |
247 | 276 | /* Inutile si pas de JSON |
248 | 277 | $this->set('_serialize', [ |
249 | 278 | 'users' |
... | ... | @@ -258,6 +287,7 @@ class UsersController extends AppController |
258 | 287 | * |
259 | 288 | * @return \Cake\Network\Response|null |
260 | 289 | */ |
290 | + /* | |
261 | 291 | public function indexRecap() |
262 | 292 | { |
263 | 293 | $this->paginate = [ |
... | ... | @@ -284,22 +314,24 @@ class UsersController extends AppController |
284 | 314 | // Affichage informations disponible pour l'utilisateur connecté |
285 | 315 | $this->myDebug($this->LdapAuth->user()); |
286 | 316 | |
287 | - /* | |
317 | + /S | |
288 | 318 | $this->set('nbUsers', $this->Users->find('all', [ |
289 | 319 | 'conditions' => [ |
290 | 320 | 'role =' => 'Responsable' |
291 | 321 | ] |
292 | 322 | ]) |
293 | 323 | ->count()); |
294 | - */ | |
324 | + S/ | |
295 | 325 | |
296 | 326 | $this->set(compact('entities')); |
297 | - /* Uniquement pour JSON | |
327 | + /S Uniquement pour JSON | |
298 | 328 | $this->set('_serialize', [ |
299 | 329 | 'users' |
300 | 330 | ]); |
301 | - */ | |
331 | + S/ | |
302 | 332 | } |
333 | + */ | |
334 | + | |
303 | 335 | |
304 | 336 | /** |
305 | 337 | * View method | ... | ... |
src/Template/Materiels/index.ctp
... | ... | @@ -821,7 +821,7 @@ if ($SELECTED_STATUS) echo $this->Form->hidden('what', ['value'=>$SELECTED_STATU |
821 | 821 | <?php if ($SELECTED_STATUS) { echo '<th></th>'; }?> |
822 | 822 | <th class="actions"><?= __('') ?></th> |
823 | 823 | <th><?= $this->Paginator->sort('designation','Désignation') ?></th> |
824 | - <th><?= $this->Paginator->sort('numero_laboratoire', 'N° interne (labo)') ?></th> | |
824 | + <th><?= $this->Paginator->sort('numero_laboratoire', 'N° inventaire') ?></th> | |
825 | 825 | <th><?= $this->paginator->sort('hors_service', ' ') ?></th> |
826 | 826 | <!-- |
827 | 827 | <th><= $this->Paginator->sort('categorie_id', 'Catégorie') ?></th> | ... | ... |
src/Template/Users/index.ctp
... | ... | @@ -2,13 +2,19 @@ |
2 | 2 | // Variables passées par le contrôleur |
3 | 3 | $entities = $entities; |
4 | 4 | $lab_website_urls = $lab_website_urls; |
5 | -$nbUsers = $nbUsers; | |
5 | +$filtre = $filtre; | |
6 | +//$nbUsers = $nbUsers; | |
7 | + | |
8 | +// Nombre total d'entités | |
9 | +$nbUsers = $this->Paginator->param('count'); | |
6 | 10 | |
7 | 11 | ?> |
8 | 12 | |
9 | 13 | <div class="users index"> |
10 | - <?php | |
11 | - echo '<h2><i class="icon-list"></i> Liste des utilisateurs ('.$nbUsers.')</h2>'; | |
14 | + <?php | |
15 | + $title = $filtre ? 'Liste des Responsables' : 'Liste des utilisateurs'; | |
16 | + $title .= " ($nbUsers)"; | |
17 | + echo "<h2><i class='icon-list'></i> $title</h2>"; | |
12 | 18 | |
13 | 19 | // Si des urls sont données vers des pages web du labo, on les affiche |
14 | 20 | //$lab_website_urls = []; |
... | ... | @@ -18,10 +24,13 @@ $nbUsers = $nbUsers; |
18 | 24 | echo "<br/>"; |
19 | 25 | } |
20 | 26 | |
21 | - echo $this->Html->link('Voir uniquement les responsables de groupes', [ | |
27 | + $new_filtre = $filtre ? null : 'responsable'; | |
28 | + $link = $filtre ? 'Voir tous les utilisateurs' : 'Voir uniquement les responsables de groupes'; | |
29 | + echo $this->Html->link($link, [ | |
22 | 30 | //'controller' => 'users', |
23 | - 'action' => 'indexRecap', | |
24 | - 'sort' => 'sur_categorie_id' | |
31 | + //'action' => 'indexRecap', | |
32 | + //'sort' => 'sur_categorie_id', | |
33 | + 'filtre' => $new_filtre | |
25 | 34 | ]); |
26 | 35 | echo "<br/><br/>"; |
27 | 36 | ?> |
... | ... | @@ -31,10 +40,17 @@ $nbUsers = $nbUsers; |
31 | 40 | <tr> |
32 | 41 | <th class="actions"><?= __('') ?></th> |
33 | 42 | <th><?= $this->Paginator->sort('nom') ?></th> |
34 | - <th><?= $this->Paginator->sort('role') ?></th> | |
35 | - <th><?= $this->Paginator->sort('groupes_metier_id', $configuration->nom_groupe_metier) ?></th> | |
36 | - <th><?= $this->Paginator->sort('groupes_thematique_id', $configuration->nom_groupe_thematique) ?></th> | |
37 | - <th><?= $this->Paginator->sort('sur_categorie_id', 'Domaine') ?></th> | |
43 | + <th><?= $this->Paginator->sort('email') ?></th> | |
44 | + | |
45 | + <!-- Seulement si pas de filtre --> | |
46 | + <?php if (! $filtre) {?> | |
47 | + <th><?= $this->Paginator->sort('role') ?></th> | |
48 | + <?php }?> | |
49 | + | |
50 | + <th><?= $this->Paginator->sort('GroupesThematiques.nom', $configuration->nom_groupe_thematique) ?></th> | |
51 | + <th><?= $this->Paginator->sort('GroupesMetiers.nom', $configuration->nom_groupe_metier) ?></th> | |
52 | + <th><?= $this->Paginator->sort('SurCategories.nom', 'Domaine') ?></th> | |
53 | + | |
38 | 54 | <th class="actions"><?= __('') ?></th> |
39 | 55 | </tr> |
40 | 56 | </thead> |
... | ... | @@ -49,10 +65,17 @@ $nbUsers = $nbUsers; |
49 | 65 | } |
50 | 66 | ?> |
51 | 67 | </td> |
68 | + | |
52 | 69 | <td class="smallText"><?= $this->Html->link($user->nom, ['action' => 'view', $user->id]) ?></td> |
70 | + <td class="smallText"><?= h($user->email) ?></td> | |
71 | + | |
72 | + <!-- Seulement si pas de filtre --> | |
73 | + <?php if (! $filtre) {?> | |
53 | 74 | <td class="smallText"><?= h($user->role) ?></td> |
54 | - <td class="smallText"><?= $user->has('groupes_metier') ? h($user->groupes_metier->nom) : '' ?></td> | |
75 | + <?php }?> | |
76 | + | |
55 | 77 | <td class="smallText"><?= $user->has('groupes_thematique') ? h($user->groupes_thematique->nom) : '' ?></td> |
78 | + <td class="smallText"><?= $user->has('groupes_metier') ? h($user->groupes_metier->nom) : '' ?></td> | |
56 | 79 | <td class="smallText"><?= $user->has('sur_categorie_id') ? h($user->sur_category->nom) : '' ?></td> |
57 | 80 | |
58 | 81 | </tr> | ... | ... |