From 48227abd5cccaa512aa261758398850811690590 Mon Sep 17 00:00:00 2001 From: Etienne Pallier Date: Sat, 10 Oct 2020 00:14:55 +0200 Subject: [PATCH] Optimisation, bugfix, et amélioration des pages de listes utilisateurs --- CHANGES.txt | 6 ++++++ README.md | 4 ++-- src/Controller/MaterielsController.php | 3 +++ src/Controller/UsersController.php | 46 +++++++++++++++++++++++++++++++++++++++------- src/Template/Materiels/index.ctp | 2 +- src/Template/Users/index.ctp | 45 ++++++++++++++++++++++++++++++++++----------- 6 files changed, 85 insertions(+), 21 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index f3885c3..992aa30 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -120,6 +120,12 @@ Outre ces changements, voici d'autres changements importants : ======= CHANGES ======= ------- +09/10/2020 v4.105.14-3.7.9 (EP) + - (e) 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) + - (b) bugfix tri colonnes de la liste des materiels + +------- 09/10/2020 v4.105.13-3.7.9 (EP) - (b) bugfix requete sql db-update-2020-06-10.sql - (i) requete sql corrective diff --git a/README.md b/README.md index 7e197b0..b4ce90e 100644 --- a/README.md +++ b/README.md @@ -42,8 +42,8 @@ Logiciel testé et validé sur les configurations suivantes : -------------------------------------------------------------------------------------------- -Date: 09/10/2020 -Version: 4.105.13-3.7.9 +Date: 12/10/2020 +Version: 4.105.14-3.7.9 HISTORIQUE DES CHANGEMENTS DE VERSION : voir le fichier CHANGES.txt (ou la page web /pages/changes) diff --git a/src/Controller/MaterielsController.php b/src/Controller/MaterielsController.php index 8cdb72a..7b930ea 100755 --- a/src/Controller/MaterielsController.php +++ b/src/Controller/MaterielsController.php @@ -877,6 +877,7 @@ class MaterielsController extends AppController { { $this->myDebug("step 3: MaterielsController.index()"); + //debug($this->request); $conditions = []; //$contain = []; $contain = ['Fournisseurs', 'Categories', 'Organismes', 'Projets', 'Users']; @@ -1251,9 +1252,11 @@ class MaterielsController extends AppController { $materiels = $this->paginate($materiels, [ 'limit' => $limit, 'maxLimit' => 1000, + /* ATTENTION, ca rentre en conflit avec la colonne de tri numero_laboratoire... 'order' => [ 'Materiels.numero_laboratoire' => 'desc' ], + */ 'sortWhitelist' => [ 'designation', 'numero_laboratoire', diff --git a/src/Controller/UsersController.php b/src/Controller/UsersController.php index 79985ba..c885f30 100755 --- a/src/Controller/UsersController.php +++ b/src/Controller/UsersController.php @@ -206,6 +206,9 @@ class UsersController extends AppController */ public function index() { + $filtre = $this->request->getQuery('filtre'); + //debug($this->viewVars); + // Si on est sur l'instance de l'IRAP (InventIrap), // on affiche l'url vers la page de l'ANNUAIRE du site web du labo $lab_website_urls = ($this->confLabinvent->labNameShort != 'IRAP') ? [] : [ @@ -229,8 +232,34 @@ class UsersController extends AppController ]; */ + $this->paginate = [ + 'contain' => [ + 'GroupesMetiers', + 'GroupesThematiques', + 'SurCategories' + ], + 'sortWhitelist' => [ + 'nom', + 'email', + 'role', + 'GroupesThematiques.nom', + 'GroupesMetiers.nom', + 'SurCategories.nom', + ], + 'limit' => 20, + /* + 'order' => [ + 'Users.nom' => 'asc' + ] + */ + ]; + + $conditions = $filtre ? ['role =' => 'Responsable'] : []; + $entities = $this->paginate($this->Users->find('all', [ + 'conditions' => $conditions + ])); // ALL users - $entities = $this->paginate(); + //$entities = $this->paginate(); // ce qui revient au même que : //$users = $this->paginate($this->Users); // Only priviledged users @@ -239,11 +268,11 @@ class UsersController extends AppController // Affichage informations disponible pour l'utilisateur connecté $this->myDebug($this->LdapAuth->user()); - $this->set('nbUsers', $this->Users->find()->count()); + //////$this->set('nbUsers', $this->Users->find()->count()); //$this->set('nbUsers', $this->Users->find('all')->count()); //$this->set('nbUsers', $priviledgedUsers->count()); - $this->set(compact('entities', 'lab_website_urls')); + $this->set(compact('entities', 'lab_website_urls', 'filtre')); /* Inutile si pas de JSON $this->set('_serialize', [ 'users' @@ -258,6 +287,7 @@ class UsersController extends AppController * * @return \Cake\Network\Response|null */ + /* public function indexRecap() { $this->paginate = [ @@ -284,22 +314,24 @@ class UsersController extends AppController // Affichage informations disponible pour l'utilisateur connecté $this->myDebug($this->LdapAuth->user()); - /* + /S $this->set('nbUsers', $this->Users->find('all', [ 'conditions' => [ 'role =' => 'Responsable' ] ]) ->count()); - */ + S/ $this->set(compact('entities')); - /* Uniquement pour JSON + /S Uniquement pour JSON $this->set('_serialize', [ 'users' ]); - */ + S/ } + */ + /** * View method diff --git a/src/Template/Materiels/index.ctp b/src/Template/Materiels/index.ctp index dd7b126..cca34d5 100644 --- a/src/Template/Materiels/index.ctp +++ b/src/Template/Materiels/index.ctp @@ -821,7 +821,7 @@ if ($SELECTED_STATUS) echo $this->Form->hidden('what', ['value'=>$SELECTED_STATU '; }?> Paginator->sort('designation','Désignation') ?> - Paginator->sort('numero_laboratoire', 'N° interne (labo)') ?> + Paginator->sort('numero_laboratoire', 'N° inventaire') ?> paginator->sort('hors_service', ' ') ?> + + Paginator->sort('role') ?> + + + Paginator->sort('GroupesThematiques.nom', $configuration->nom_groupe_thematique) ?> + Paginator->sort('GroupesMetiers.nom', $configuration->nom_groupe_metier) ?> + Paginator->sort('SurCategories.nom', 'Domaine') ?> + @@ -49,10 +65,17 @@ $nbUsers = $nbUsers; } ?> + Html->link($user->nom, ['action' => 'view', $user->id]) ?> + email) ?> + + + role) ?> - has('groupes_metier') ? h($user->groupes_metier->nom) : '' ?> + + has('groupes_thematique') ? h($user->groupes_thematique->nom) : '' ?> + has('groupes_metier') ? h($user->groupes_metier->nom) : '' ?> has('sur_categorie_id') ? h($user->sur_category->nom) : '' ?> -- libgit2 0.21.2