Commit b9d33c3612eae26159a67faaa6d9105d51ae2eb6

Authored by Etienne Pallier
1 parent 5ce09108
Exists in master and in 1 other branch dev

Ajout "gestionnaire" dans recherche matériels et dans export CSV

- Ajout du champ "Gestionnaire" dans le formulaire de recherche de
matériels

- Ajout du champ "Gestionnaire" dans l'export CSV de la liste des
matériels

v4.103.15-3.7.9
CHANGES.txt
... ... @@ -31,9 +31,13 @@ Remaniement complet du système de notification :
31 31 => (TODO) peut-être plus tard, aux responsables (scientifique et chef projet) du projet auquel le matériel est associé
32 32 Bien sûr, l'auteur de l'action n'est pas notifié (il est déjà au courant...)
33 33  
  34 +Gestionnaire de référence :
34 35 La sélection d'un "gestionnaire de référence" est désormais obligatoire lors de la validation d'une fiche matériel.
35 36 Par défaut, si c'est un gestionnaire qui valide (et c'est normalement le cas...), c'est lui qui est mis comme "gestionnaire de référence"
36   -(sauf s'il y en avait déjà un déclaré avant)
  37 +(sauf s'il y en avait déjà un déclaré avant).
  38 +L'exportation de la liste des matériels inclut désormais le champ "Gestionnaire"
  39 +On peut aussi faire une recherche de matériels par gestionnaire.
  40 +
37 41  
38 42  
39 43 -------
... ... @@ -114,7 +118,9 @@ Outre ces changements, voici d'autres changements importants :
114 118 ======= CHANGES =======
115 119  
116 120 -------
117   -28/09/2020 v4.103.14-3.7.9 (EP)
  121 +28/09/2020 v4.103.15-3.7.9 (EP)
  122 + - (i) Ajout du champ "Gestionnaire" dans le formulaire de recherche de matériels
  123 + - (i) Ajout du champ "Gestionnaire" dans l'export CSV de la liste des matériels
118 124 - (e) Ajout d'une page web "/pages/Notifications" qui donne l'état actuel des notifications (quelles notifs pour quelles actions)
119 125 (sur le modèle de /pages/acls)
120 126 => Ajout d'explications générales sur la page des notifications et de liens vers la page de log
... ...
README.md
... ... @@ -43,7 +43,7 @@ Logiciel testé et validé sur les configurations suivantes :
43 43 --------------------------------------------------------------------------------------------
44 44  
45 45 Date: 28/09/2020
46   -Version: 4.103.14-3.7.9
  46 +Version: 4.103.15-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
... ... @@ -2887,6 +2887,7 @@ class MaterielsController extends AppController {
2887 2887 $this->getConditionForFieldNumber('sur_categorie_id'),
2888 2888 $this->getConditionForFieldNumber('categorie_id'),
2889 2889 $this->getConditionForFieldNumber('sous_categorie_id'),
  2890 + $this->getConditionForFieldNumber('gestionnaire_id'),
2890 2891 $this->getConditionForField('nom_responsable'),
2891 2892 $this->getConditionForField('numero_inventaire_organisme'),
2892 2893 $this->getConditionForField('numero_inventaire_old'),
... ... @@ -2959,6 +2960,22 @@ class MaterielsController extends AppController {
2959 2960 'lieu_detail !=' => 'null'
2960 2961 )
2961 2962 ]);
  2963 + // (EP 202009) TOUS les Gestionnaires
  2964 + $s_nom_gest = $this->Materiels->Users->find('list', [
  2965 + //'keyField' => 'nom',
  2966 + 'keyField' => 'id',
  2967 + 'valueField' => 'nom',
  2968 + 'order' => 'nom',
  2969 + /*
  2970 + 'conditions' => array(
  2971 + 'nom !=' => 'SUPERADMIN FAKE_LDAP',
  2972 + )
  2973 + */
  2974 + ])
  2975 + ->where([
  2976 + 'nom !=' => 'SUPERADMIN FAKE_LDAP',
  2977 + 'role =' => 'Administration'
  2978 + ]);
2962 2979 // (EP 202007) TOUS les utilisateurs (même ceux qui n'ont aucun matériel)
2963 2980 $s_nomresp = $this->Materiels->Users->find('list', [
2964 2981 'keyField' => 'nom',
... ... @@ -2996,8 +3013,14 @@ class MaterielsController extends AppController {
2996 3013 $categories = $this->Materiels->Categories;
2997 3014  
2998 3015 // Pass all these LISTS to the view :
2999   - $this->set(compact('s_numero_laboratoire', 's_nomresp', 's_sur_categories', 's_categories', 's_sous_categories', 's_groupes_thematiques', 's_groupes_metiers',
3000   - 's_organismes', 's_fournisseurs', 's_salles', 'categories'));
  3016 + $this->set(compact(
  3017 + 's_numero_laboratoire',
  3018 + 's_nom_gest', 's_nomresp',
  3019 + 's_sur_categories', 's_categories', 's_sous_categories',
  3020 + 'categories',
  3021 + 's_groupes_thematiques', 's_groupes_metiers',
  3022 + 's_organismes', 's_fournisseurs', 's_salles'
  3023 + ));
3001 3024  
3002 3025 } // set_elements_lists_for_view_find()
3003 3026  
... ... @@ -3321,7 +3344,10 @@ class MaterielsController extends AppController {
3321 3344 $this->myDebug($this->request->getData());
3322 3345  
3323 3346 // Critères pour requete sql sur materiels
3324   - $contain = ['Fournisseurs'];
  3347 + $contain = [
  3348 + 'Fournisseurs',
  3349 + 'Users', // Pour les gestionnaires (gestionnaire_id)
  3350 + ];
3325 3351 $order = ['numero_laboratoire' => 'DESC'];
3326 3352  
3327 3353 $CAS = 0;
... ... @@ -3523,7 +3549,7 @@ class MaterielsController extends AppController {
3523 3549 // supprime les autres caractères
3524 3550 $header_row = [
3525 3551 //"id",
3526   - "Designation",
  3552 + "Désignation",
3527 3553 "Sur-categorie",
3528 3554 "Categorie",
3529 3555 "Sous-categorie",
... ... @@ -3546,6 +3572,7 @@ class MaterielsController extends AppController {
3546 3572 "Numero inventaire organisme",
3547 3573 "Ancien Numero inventaire",
3548 3574 "Site stockage",
  3575 + "Gestionnaire",
3549 3576 "Nom responsable",
3550 3577 "Email responsable"
3551 3578 ];
... ... @@ -3560,8 +3587,9 @@ class MaterielsController extends AppController {
3560 3587 //utf8_encode($result->id),
3561 3588 $result->designation
3562 3589 ];
3563   -
  3590 +
3564 3591 array_push($row, getElementFromList($surCategories, $result, 'sur_categorie_id'));
  3592 +
3565 3593 /*
3566 3594 $fkName = 'sur_categorie_id';
3567 3595 $listName = $surCategories;
... ... @@ -3669,6 +3697,8 @@ class MaterielsController extends AppController {
3669 3697 }
3670 3698 */
3671 3699  
  3700 + array_push($row, $result->gestionnaire_id ? $result->user->nom:'');
  3701 +
3672 3702 array_push($row, $result->nom_responsable);
3673 3703 array_push($row, $result->email_responsable);
3674 3704  
... ...
src/Template/Materiels/find.ctp
... ... @@ -8,12 +8,13 @@
8 8 </h2>
9 9 <?php
10 10  
11   -/* (EP) Variables exportées par MaterielsController pour cette vue (à compléter)
  11 +// (EP) Variables exportées par MaterielsController pour cette vue (à compléter)
12 12  
13   -$s_numero_laboratoire => mais n'est plus utilisé car on préfère la recherche plein texte
14   -...
  13 +$s_nom_gest = $s_nom_gest;
  14 +$s_nomresp = $s_nomresp;
  15 +// $s_numero_laboratoire => plus utilisé car on préfère la recherche plein texte
  16 +// ...
15 17  
16   -*/
17 18  
18 19 use Cake\I18n\Date;
19 20 use Cake\I18n\Time;
... ... @@ -181,7 +182,7 @@ echo $this-&gt;Form-&gt;control(&#39;s_numero_laboratoire&#39;, [
181 182 $orgas = $s_organismes;
182 183 echo $this->Form->control('s_organisme_id', [
183 184 'label' => 'Organisme',
184   - 'empty' => 'Toutes',
  185 + 'empty' => 'Tous',
185 186 'style' => 'width: 200px',
186 187 'options' => $orgas
187 188 ]);
... ... @@ -197,15 +198,21 @@ echo $this-&gt;Form-&gt;control(&#39;s_fournisseur_id&#39;, [
197 198 $salle = $s_salles;
198 199 echo $this->Form->control('s_salle', [
199 200 'label' => 'Détail lieu de stockage',
200   - 'empty' => 'Toutes',
  201 + 'empty' => 'Tous',
201 202 'style' => 'width: 200px',
202 203 'options' => $salle
203 204  
204 205 ]);
205 206  
  207 +echo $this->Form->control('s_gestionnaire_id', [
  208 + 'label' => 'Nom du Gestionnaire de référence',
  209 + 'empty' => 'Tous',
  210 + 'options' => $s_nom_gest
  211 +]);
  212 +
206 213 echo $this->Form->control('s_nom_responsable', [
207 214 'label' => 'Nom du propriétaire',
208   - 'empty' => 'Toutes',
  215 + 'empty' => 'Tous',
209 216 'options' => $s_nomresp
210 217 ]);
211 218 echo $this->Form->control('s_numero_inventaire_organisme', [
... ...