Commit f63eabb232f4ea12e5ac987606477ee62ded11b4

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

Gestion plus simple des catégories, domaines, et sous-catégories...

Mais aussi :
- chaque utilisateur peut voir sa fiche profil
- liste utilisateurs triée par le nom-pnom (par défaut)
- doc attaché "nom" => "nom du doc" (plus explicite)

v5.2.22-3.7.9
CHANGELOG
... ... @@ -353,10 +353,17 @@ Commencer à implémenter le nouveau workflow v5 :
353 353 ======= TODO =======
354 354  
355 355 PRIO :
356   - - vincent (changer nom doc)
357 356 - config via page web !!!
358 357 - tests ok
359 358  
  359 + *) Stats de connexion
  360 + - le tri des autres colonnes ne marche plus
  361 +
  362 + *)
  363 + Rendre modifiable la config via page web "Gérer les champs obligatoires"
  364 + - OFF_nom_du_champ : 'libellé'
  365 + - Restaurer la config par défaut
  366 + - Réactiver une variable : OFF_nom_du_champ => nom_du_champ
360 367  
361 368 *) SUPERADMIN
362 369 => par défaut, au minimum, mêmes droits que ADMIN
... ... @@ -370,27 +377,23 @@ Commencer à implémenter le nouveau workflow v5 :
370 377 - numéro inventaire (hidden par défaut pour l'édition)
371 378 - ...
372 379  
  380 + *) Terminer la vue index générique :
  381 + - AppController->index_generic()
  382 + - Template/Common/indexgen.ctp
  383 +
373 384  
374 385 *) => update matos lifecycle diag
375 386  
376 387 *) Vincent :
377   - - (admin) supprimer photo d'un matos validé
378   - - j'ai lié un mauvaise photo à un matériel déjà validé.
379   - Je souhaiterais la supprimer mais le matériel étant validé, je n'ai pas l'autorisation.
380 388 - email pas trouvé (ancienne fiche de vincent)
381   - - photos :
382   - - "nom" => "nom du doc"
383   - - et doit être modifiable !
384   -
385   - *) Gérer categ/s-categ plus facilement
  389 + - doc attaché : nom doit être modifiable
386 390  
387   - *) (b) Users list : tri alpha par défaut
388   -
389 391 *) Resp :
390 392 - voir menus Outils & Autres (ou pas) ?
391 393 - respb de qqch !!!
392 394  
393 395 *) qqsoit user : doit pouvoir voir sa fiche user (no modif)
  396 + => mais pas celle des autres...
394 397  
395 398 *) TESTS !!!!
396 399 *) Les tests doivent se faire avec la config par défaut (et non pas celle spécifique du labo)
... ... @@ -402,10 +405,6 @@ Commencer à implémenter le nouveau workflow v5 :
402 405 (quelle diff avec "[LabInvent] Ajout d'un matériel" ??)
403 406  
404 407  
405   -
406   - *) Stats de connexion
407   - - le tri des autres colonnes ne marche plus
408   -
409 408 *)
410 409 TBO ou ARCHIVED (= validated) : ne pas autoriser edit ou delete des docs attachés
411 410 Autoriser certaines choses pour TBO :
... ... @@ -423,18 +422,8 @@ Commencer à implémenter le nouveau workflow v5 :
423 422 Facture jointe (si > 10K)
424 423 Détail lieu stockage + S/N demandé ssi > 10K€
425 424  
426   -
427   -
428   -
429 425  
430 426 *)
431   - Rendre modifiable la config via page web "Gérer les champs obligatoires"
432   - - OFF_nom_du_champ : 'libellé'
433   - - Restaurer la config par défaut
434   - - Réactiver une variable : OFF_nom_du_champ => nom_du_champ
435   -
436   -
437   - *)
438 427 Procédures pour les utilisateurs et les gestionnaires désormais configurable via le fichier de conf
439 428  
440 429  
... ... @@ -465,6 +454,13 @@ Commencer à implémenter le nouveau workflow v5 :
465 454 ======= CHANGES =======
466 455  
467 456 -------
  457 +02/11/2021 v5.2.22-3.7.9
  458 + - (e) gestion plus simple des catégories, domaines, et sous-catégories
  459 + - (e) chaque utilisateur peut voir sa fiche profil
  460 + - (e) liste utilisateurs triée par le nom-pnom (par défaut)
  461 + - (e) doc attaché "nom" => "nom du doc" (plus explicite)
  462 +
  463 +-------
468 464 27/10/2021 v5.2.21-3.7.9
469 465 - (i) Amélioration du fichier de config des champs matériels (généralisation pour les docs attachés et champs recommandés)
470 466 => on peut maintenant préciser, à chaque étape, TOUT type important de doc attaché (devis, BC, BL, facture) comme étant obligatoire ou non modifiable ni supprimable
... ...
README.md
... ... @@ -52,8 +52,8 @@ Logiciel testé et validé sur les configurations suivantes :
52 52  
53 53 --------------------------------------------------------------------------------------------
54 54  
55   -Date: 27/10/2021
56   -Version: v5.2.21-3.7.9
  55 +Date: 02/11/2021
  56 +Version: v5.2.22-3.7.9
57 57  
58 58  
59 59 HISTORIQUE DES CHANGEMENTS DE VERSION : voir le fichier CHANGES.txt (ou la page web /pages/changes)
... ...
src/Controller/AppController.php
... ... @@ -2082,8 +2082,36 @@ class AppController extends Controller
2082 2082  
2083 2083 } // beforeFilter()
2084 2084  
  2085 +
  2086 + /**
  2087 + * Index method
  2088 + *
  2089 + * @return \Cake\Network\Response|null
  2090 + * TODO: à terminer...
  2091 + */
  2092 + public function index_generic($entity_plural, $fields_names)
  2093 + {
  2094 + $controller_name = $this->getName();
  2095 + //debug($controller_name);
  2096 +
  2097 + $this->paginate = [
  2098 + 'contain' => [
  2099 + 'SurCategories'
  2100 + ]
  2101 + ];
  2102 + //$categories = $this->paginate($this->Categories);
  2103 + $entities = $this->paginate($this->$controller_name);
  2104 +
  2105 + $this->set(compact('entities', 'entity_plural', 'fields_names'));
  2106 +
  2107 + /* (EP) Pas nécessaire
  2108 + $this->set('_serialize', [
  2109 + 'categories'
  2110 + ]);
  2111 + */
  2112 + }
2085 2113  
2086   - public function index_generic($group_type1, $group_type2, $lab_website_url=null) {
  2114 + public function index_groups($group_type1, $group_type2, $lab_website_url=null) {
2087 2115  
2088 2116 // https://book.cakephp.org/3/fr/controllers/components/pagination.html
2089 2117 $groups = $this->paginate();
... ... @@ -2108,7 +2136,7 @@ class AppController extends Controller
2108 2136  
2109 2137 //public function view_generic($id, $associated_entity_types, $parent_entity_controller_name=[]) {
2110 2138 //public function view_generic($id, $associated_entity_types, $containavirer=[]) {
2111   - public function view_generic($id, $child_entity_types=[]) {
  2139 + public function view_generic($id, $child_entity_types=[], $sub_controller=null, $sub_controller_singular=null) {
2112 2140  
2113 2141 //debug($contain_children);
2114 2142 // ex: SurCategories
... ... @@ -2374,6 +2402,8 @@ class AppController extends Controller
2374 2402 $entity_name = $entity->$entity_name_field_label;
2375 2403 $this->set(compact(
2376 2404  
  2405 + 'id',
  2406 +
2377 2407 'fields_label',
2378 2408  
2379 2409 // Infos sur l'entité courante
... ... @@ -2388,7 +2418,11 @@ class AppController extends Controller
2388 2418 //'parent_entity_name','parent_entity_id',
2389 2419  
2390 2420 // Infos sur les entités associées
2391   - 'child_entities_list'
  2421 + 'child_entities_list',
  2422 +
  2423 + // Optionnel : sous-controleur pour pouvoir ajouter une sous-entité (ex: ajouter une sous-catégorie à une catégorie)
  2424 + 'sub_controller',
  2425 + 'sub_controller_singular'
2392 2426  
2393 2427 ));
2394 2428 //debug($this->viewVars);exit;
... ... @@ -2405,6 +2439,7 @@ class AppController extends Controller
2405 2439 */
2406 2440 } // view_generic()
2407 2441  
  2442 +
2408 2443 /**
2409 2444 * Add or Edit generic method (do either add() or edit())
2410 2445 * => Factorisation de add() et edit()
... ... @@ -2907,7 +2942,10 @@ class AppController extends Controller
2907 2942 // Pass this function to all views
2908 2943 //function echoActionButton($html, $icon_class, $title, $action, $id, $tip='', $controller='materiels', $mat=NULL, $photo=NULL) {
2909 2944 //$echoActionButton = function($html, $icon_class, $buttonStyle='', $title, $controller='', $action, $id, $other_args=[], $tip='', $confirmMessage='') {
2910   - $getActionButton = function($html, $icon_class, $buttonStyle, $title, $controller, $action, $id, $other_args=[], $tip='', $confirmMessage='', $moreButtonStyle='') {
  2945 + $getActionButton = function(
  2946 + $html, $icon_class, $buttonStyle,
  2947 + $title, $controller, $action, $id, $other_args=[], $tip='', $confirmMessage='', $moreButtonStyle=''
  2948 + ) {
2911 2949 if ($controller=='') $controller='materiels';
2912 2950 $controllerArgs = [];
2913 2951 $controllerArgs['controller'] = $controller;
... ...
src/Controller/CategoriesController.php
... ... @@ -101,6 +101,16 @@ class CategoriesController extends AppController
101 101 */
102 102 public function index()
103 103 {
  104 +
  105 + $this->index_generic(
  106 + 'catégories',
  107 + [
  108 + 'nom'=>'Nom',
  109 + 'sur_categorie_id' => 'Domaine',
  110 + ]
  111 + );
  112 +
  113 + /*
104 114 $this->paginate = [
105 115 'contain' => [
106 116 'SurCategories'
... ... @@ -112,6 +122,7 @@ class CategoriesController extends AppController
112 122 $this->set('_serialize', [
113 123 'categories'
114 124 ]);
  125 + */
115 126 }
116 127  
117 128 /**
... ... @@ -130,7 +141,7 @@ class CategoriesController extends AppController
130 141 //return parent::view($id, $associated_entity_types);
131 142 //return $this->view_generic($id, $associated_entity_types, 'SurCategories');
132 143 //return $this->view_generic($id, $child_entity_types, ['SurCategories']);
133   - return $this->view_generic($id, $child_entity_types);
  144 + return $this->view_generic($id, $child_entity_types, 'sous-categories', ' une sous-catégorie');
134 145  
135 146 /*
136 147 $category = $this->Categories->get($id, [
... ... @@ -160,8 +171,10 @@ class CategoriesController extends AppController
160 171 *
161 172 * @return \Cake\Network\Response|void Redirects on successful add, renders view otherwise.
162 173 */
163   - public function add()
  174 + //public function add()
  175 + public function add($parent_id=null)
164 176 {
  177 + //debug($parent_id);
165 178 $category = $this->Categories->newEntity();
166 179 if ($this->request->is('post')) {
167 180 $category = $this->Categories->patchEntity($category, $this->request->getData());
... ...
src/Controller/GroupesMetiersController.php
... ... @@ -78,7 +78,7 @@ class GroupesMetiersController extends AppController
78 78 */
79 79 public function index() {
80 80  
81   - $this->index_generic(
  81 + $this->index_groups(
82 82 'metier', 'métier',
83 83 "https://www.irap.omp.eu/homepage/organisation/groupes-metiers"
84 84 );
... ...
src/Controller/GroupesThematiquesController.php
... ... @@ -71,7 +71,7 @@ class GroupesThematiquesController extends AppController
71 71 */
72 72 public function index() {
73 73  
74   - $this->index_generic(
  74 + $this->index_groups(
75 75 'thematique', 'thématique',
76 76 "https://www.irap.omp.eu/homepage/organisation/groupes-thematiques"
77 77 );
... ...
src/Controller/SousCategoriesController.php
... ... @@ -146,7 +146,7 @@ class SousCategoriesController extends AppController
146 146 *
147 147 * @return \Cake\Network\Response|void Redirects on successful add, renders view otherwise.
148 148 */
149   - public function add()
  149 + public function add($parent_id=null)
150 150 {
151 151 $sousCategory = $this->SousCategories->newEntity();
152 152 if ($this->request->is('post')) {
... ...
src/Controller/SurCategoriesController.php
... ... @@ -195,7 +195,8 @@ class SurCategoriesController extends AppController
195 195 'Materiels'
196 196 ];
197 197 //return parent::view($id, $associated_entity_types);
198   - return $this->view_generic($id, $child_entity_types);
  198 + return $this->view_generic($id, $child_entity_types, 'categories', ' une catégorie');
  199 +
199 200 }
200 201  
201 202  
... ...
src/Template/Categories/add.ctp
  1 +<?php
  2 +// add/id pour préciser d'ajouter cette catégorie dans le domaine numéro id
  3 +$parent_id = isset($this->request->getParam('pass')[0]) ? $this->request->getParam('pass')[0] : null;
  4 +?>
1 5  
2 6 <div class="categories form col-lg-5 col-md-7 col-sm-9">
3 7 <?= $this->Form->create($category) ?>
... ... @@ -9,7 +13,8 @@
9 13 echo $this->Form->control('nom');
10 14 echo $this->Form->control('sur_categorie_id', [
11 15 'label' => 'Domaine',
12   - 'options' => $surCategories
  16 + 'options' => $surCategories,
  17 + 'default' => $parent_id,
13 18 ]);
14 19 ?>
15 20 </fieldset>
... ...
src/Template/Categories/index.ctp
1   -
2   -<div class="categories index">
3   -
4   - <?php echo '<h2><i class="icon-list"></i> Liste des catégories</h2>'; ?>
5   -
6   - <?=$this->element('button_add'); ?>
7   -
8   - <table style="border-collapse: separate; border-spacing: 0;width: 270px;">
9   - <thead>
10   - <tr>
11   - <th class="actions"><?= __('') ?></th>
12   - <th><?= $this->Paginator->sort('nom', 'Nom') ?></th>
13   - <th><?= $this->Paginator->sort('sur_categorie_id', 'Domaine') ?></th>
14   -
15   - </tr>
16   - </thead>
17   - <tbody>
18   - <?php foreach ($categories as $category): ?>
19   - <tr>
20   - <td class="actions" style="padding: 6px 0; text-align: left;">
21   - <?php if (in_array($role, ['Administration Plus', 'Super Administrateur'])) { ?>
22   - <?= $this->Html->link(__('<i class="icon-pencil"></i>'), ['action' => 'edit', $category->id], ['title' => 'Editer', 'style' => 'margin: 0 2px', 'escape' => false ]) ?>
23   - <?php } ?>
24   -
25   - <?php if (in_array($role, ['Super Administrateur'])) { ?>
26   - <?= $this->Form->postLink(__('<i class="icon-trash"></i>'), ['action' => 'delete', $category->id], ['title' => 'Supprimer', 'style' => 'margin: 0 2px', 'escape' => false, 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $category->id)]) ?>
27   - <?php } ?>
28   - </td>
29   -
30   - <td class="smallText"><?= $this->Html->link($category->nom, ['action' => 'view', $category->id]) ?></td>
31   - <td class="smallText"><?= $category->has('sur_category') ? $this->Html->link($category->sur_category->nom, ['controller' => 'SurCategories', 'action' => 'view', $category->sur_category->id]) : '' ?></td>
32   -
33   -
34   -
35   - </tr>
36   - <?php endforeach; ?>
37   - </tbody>
38   - </table>
39   -
40   - <?php echo $this->element('pagination_with_first_and_last'); ?>
41   -
42   -
43   -</div>
44   -
45   -<!--
46   -<div class="actions">
47   - <php echo $this->element('menu') ?>
48   - <php
49   -
50   -echo $this->element('menu_index', [
51   - 'pluralHumanName' => 'Catégories',
52   - 'singularHumanName' => 'Catégorie'
53   -])?>
54   - </div>
55   --->
56   -
  1 +<?php
  2 +$this->extend('/Common/index_gen');
57 3 \ No newline at end of file
... ...
src/Template/Common/index_gen.ctp 0 → 100755
... ... @@ -0,0 +1,87 @@
  1 +<?php
  2 +
  3 +$DEBUG=false;
  4 +//$DEBUG=true;
  5 +
  6 +// Variables passées par le contrôleur
  7 +$role = $role;
  8 +$entities = $entities;
  9 +$entity_plural = $entity_plural;
  10 +$fields_names = $fields_names;
  11 +
  12 +?>
  13 +
  14 +<div class="entities index">
  15 +
  16 + <?php echo "<h2><i class='icon-list'></i> Liste des $entity_plural</h2>"; ?>
  17 +
  18 + <?=$this->element('button_add'); ?>
  19 +
  20 + <table style="border-collapse: separate; border-spacing: 0;width: 270px;">
  21 +
  22 + <thead>
  23 + <tr>
  24 + <th class="actions"><?= __('') ?></th>
  25 + <!--
  26 + <th><?= $this->Paginator->sort('sur_categorie_id', 'Domaine') ?></th>
  27 + -->
  28 + <?php
  29 + foreach ($fields_names as $fname=>$fnicename)
  30 + echo "<th>".$this->Paginator->sort($fname, $fnicename)."</th>";
  31 + ?>
  32 + </tr>
  33 + </thead>
  34 +
  35 + <tbody>
  36 + <?php foreach ($entities as $e): ?>
  37 + <tr>
  38 +
  39 + <!--
  40 + Actions edit / delete
  41 + -->
  42 + <td class="actions" style="padding: 6px 0; text-align: left;">
  43 + <?php if (in_array($role, ['Administration Plus', 'Super Administrateur'])) { ?>
  44 + <?= $this->Html->link(__('<i class="icon-pencil"></i>'), ['action' => 'edit', $e->id], ['title' => 'Editer', 'style' => 'margin: 0 2px', 'escape' => false ]) ?>
  45 + <?php } ?>
  46 +
  47 + <?php if (in_array($role, ['Super Administrateur'])) { ?>
  48 + <?= $this->Form->postLink(__('<i class="icon-trash"></i>'), ['action' => 'delete', $e->id], ['title' => 'Supprimer', 'style' => 'margin: 0 2px', 'escape' => false, 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $e->id)]) ?>
  49 + <?php } ?>
  50 + </td>
  51 +
  52 + <!--
  53 + Data
  54 + -->
  55 + <td class="smallText"><?= $this->Html->link($e->nom, ['action' => 'view', $e->id]) ?></td>
  56 + <td class="smallText"><?= $e->has('sur_category') ? $this->Html->link($e->sur_category->nom, ['controller' => 'SurCategories', 'action' => 'view', $e->sur_category->id]) : '' ?></td>
  57 + <?php
  58 + /*
  59 + //TODO:
  60 + foreach ($e->toArray() as $fname=>$fval) {
  61 + }
  62 + */
  63 + ?>
  64 +
  65 + </tr>
  66 + <?php endforeach; ?>
  67 + </tbody>
  68 +
  69 + </table>
  70 +
  71 + <?php echo $this->element('pagination_with_first_and_last'); ?>
  72 +
  73 +
  74 +</div>
  75 +
  76 +<!--
  77 +<div class="actions">
  78 + <php echo $this->element('menu') ?>
  79 + <php
  80 +
  81 +echo $this->element('menu_index', [
  82 + 'pluralHumanName' => 'Catégories',
  83 + 'singularHumanName' => 'Catégorie'
  84 +])?>
  85 + </div>
  86 +-->
  87 +
... ...
src/Template/Common/index.ctp renamed to src/Template/Common/index_groups.ctp
src/Template/Common/view.ctp
1   -<?php
  1 +<?php
  2 +/*
2 3 use App\Controller\SurCategoriesController;
3   -use App\Model\Entity\SurCategory;
4 4 use Cake\ORM\Entity;
5 5 use App\Model\Entity\GroupesThematique;
6 6 use App\Model\Entity\GroupesMetier;
  7 +*/
7 8  
8 9 $DEBUG=false;
9 10 //$DEBUG=true;
10 11  
11   -// Variables passées par le contrôleur
  12 +// Arguments passés par le contrôleur
12 13  
13 14 $role = $role;
14 15  
  16 +$id = $id;
  17 +
15 18 $entity = $entity;
16 19 //debug($entity);
17 20 //$parent_entity_infos=$parent_entity_infos;
... ... @@ -34,6 +37,12 @@ $entity_name = $entity_name;
34 37 // En général, par défaut : "Matériels associés" et "Utilisateurs associés"
35 38 $child_entities_list = $child_entities_list;
36 39  
  40 +// OPTIONNELS
  41 +if (isset($sub_controller)) {
  42 + $sub_controller = $sub_controller;
  43 + $sub_controller_singular = $sub_controller_singular;
  44 +}
  45 +
37 46 // Fonctions
38 47 //$displayElement = $displayElement;
39 48  
... ... @@ -70,7 +79,8 @@ $child_entities_list = $child_entities_list;
70 79  
71 80 // Lien Editer
72 81 if (in_array($role, [
73   - 'Administration Plus',
  82 + //'Administration Plus',
  83 + 'Administration',
74 84 'Super Administrateur'
75 85 ])) {
76 86 echo $this->Html->link(__('<i class="icon-pencil"></i> Editer'), [
... ... @@ -100,7 +110,7 @@ $child_entities_list = $child_entities_list;
100 110 }
101 111  
102 112 /*
103   - * I - Affichage des champs de l'entité (nom, description)
  113 + * I - Affichage des champs de l'entité (nom, description, ...)
104 114 *
105 115 * avec les entités associées "PARENTES" (groupes metier/thema, projet, user, ...)
106 116 */
... ... @@ -197,6 +207,26 @@ $child_entities_list = $child_entities_list;
197 207 ?>
198 208  
199 209  
  210 + <!-- Bouton "Ajouter" pour ajouter un nouvel élément (ssi autorisé) -->
  211 + <?php
  212 + if (isset($sub_controller)) {
  213 + echo $this->element('button_add', compact(
  214 + 'id',
  215 + 'sub_controller',
  216 + 'sub_controller_singular'
  217 + ));
  218 + /*
  219 + echo $this->element('button_add', [
  220 + 'id' => $id,
  221 + 'sub_controller' => $sub_controller,
  222 + 'sub_controller_singular' => $sub_controller_singular
  223 + ]);
  224 + */
  225 + //echo "<br />";
  226 + }
  227 + ?>
  228 +
  229 +
200 230 <!-- II - Affichage des entités associées "ENFANTS" (matériels, utilisateurs, ...) -->
201 231  
202 232 <?php
... ...
src/Template/Documents/add_edit.ctp
... ... @@ -147,8 +147,12 @@ if (isset($photo)) {
147 147 // (Malik)
148 148 // EDIT only : On met le nom du doc en read only vu qu'il apparait dans le nom du fichier sur le serveur
149 149 // et une opération pour remodifier ces fichiers peut être complexe
150   - echo $this->Form->control('nom', ['readonly' => !$IS_ADD]);
151   -
  150 + //echo $this->Form->control('nom', ['readonly' => !$IS_ADD]);
  151 + echo $this->Form->control('nom',[
  152 + 'label' => 'Nom du doc attaché',
  153 + 'readonly' => !$IS_ADD
  154 + ]);
  155 +
152 156 // - Type (hidden si photo)
153 157 echo "<i>(Si vous choisissez le type 'Photo', ce document sera affiché en tête de la fiche du $parent_type associé)</i>";
154 158 $control = 'control';
... ...
src/Template/Element/button_add.ctp
1 1 <!-- Bouton "Ajouter" pour ajouter un nouvel élément (ssi autorisé) -->
2 2  
  3 +<?php
  4 +// Arguments passées à cet Element
  5 +$role = $role;
  6 +// optionnels :
  7 +$id = isset($id) ? $id : null;
  8 +if (isset($sub_controller)) {
  9 + $sub_controller = $sub_controller;
  10 + $sub_controller_singular = $sub_controller_singular;
  11 +}
  12 +?>
  13 +
3 14 <div id="boutons" class="actions" style="margin-bottom:5px; width:100%; float:none; padding:5px 0;">
4 15 <?php
  16 + $controller = $this->request->controller;
  17 + $entities_name = '';
  18 + if (isset($sub_controller)) {
  19 + $controller = $sub_controller;
  20 + $entities_name = $sub_controller_singular;
  21 + }
5 22 //echo $this->request->controller;
6 23 //$entity = $this->request->controller; // controller name (Sites, Suivis, Organismes, ...)
7 24 $bStyle = 'margin-right: 10px';
... ... @@ -14,6 +31,6 @@
14 31 //in_array($singularHumanName, ['Matériel','Suivi','Emprunt','Fournisseur'])
15 32 in_array($this->request->controller, ['Materiels','Suivis','Emprunts','Fournisseurs'])
16 33 );
17   - if ($CAN_ADD) $echoActionButton($this->Html, 'icon-plus', $bStyle, ' Ajouter', $this->request->controller, 'add', null);
  34 + if ($CAN_ADD) $echoActionButton($this->Html, 'icon-plus', $bStyle, ' Ajouter'.$entities_name, $controller, 'add', $id);
18 35 ?>
19 36 </div>
... ...
src/Template/GroupesMetiers/index.ctp
1 1 <?php
2   -$this->extend('/Common/index');
3 2 \ No newline at end of file
  3 +$this->extend('/Common/index_groups');
4 4 \ No newline at end of file
... ...
src/Template/GroupesThematiques/index.ctp
1 1 <?php
2   -$this->extend('/Common/index');
3 2 \ No newline at end of file
  3 +$this->extend('/Common/index_groups');
4 4 \ No newline at end of file
... ...
src/Template/Layout/default.ctp
1 1 <?php
2 2  
  3 +// Voir toutes les variables passées à cette vue :
  4 +//debug($this->viewVars);
  5 +
3 6 /**
4 7  
5 8 Logiciel LabInvent - Inventaire des matériels d'un laboratoire
... ... @@ -203,8 +206,14 @@ $this-&gt;append(&#39;script&#39;, $this-&gt;Html-&gt;script([&#39;script&#39;, &#39;DatepickerConfig&#39;, &#39;onTa
203 206 <div class="offset-lg-6 col-lg-4 user">
204 207 <?php
205 208 if (isset($username) && $username != " ") {
206   - echo 'Bienvenue ' . $username . '<br/>';
207   - echo $role . '<br/>';
  209 + //echo 'Bienvenue ' . $username . '<br/>';
  210 + echo 'Bienvenue '.$this->Html->link($username, [
  211 + 'controller' => 'Users',
  212 + 'action' => 'view',
  213 + $priviledgedUser->id
  214 + //$user->id,
  215 + ]).'<br/>';
  216 + echo "<i>(profil $role)</i>" . '<br/>';
208 217 echo $this->Html->link('Se déconnecter', [
209 218 'controller' => 'Users',
210 219 'action' => 'logout'
... ...
src/Template/Pages/tools.ctp
... ... @@ -139,7 +139,7 @@ $no_limit_mode = $no_limit_mode;
139 139 //if ($role == 'Super Administrateur') :
140 140 if ($USER_IS_SUPERADMIN) :
141 141  
142   - $this->MyHelper->echoMenuItemWithIcon("user.jpg", "Gérer les utilisateurs", 'users');
  142 + $this->MyHelper->echoMenuItemWithIcon("user.jpg", "Gérer les utilisateurs", 'users?sort=nom&direction=asc');
143 143 /*
144 144 echo '<tr><td>';
145 145 //echo $this->Html->link('Gérer les utilisateurs privilégiés', [
... ...
src/Template/SousCategories/add.ctp
  1 +<?php
  2 +// add/id pour préciser d'ajouter cette sous-catégorie dans la catégorie numéro id
  3 +$parent_id = isset($this->request->getParam('pass')[0]) ? $this->request->getParam('pass')[0] : null;
  4 +?>
1 5  
2 6 <div class="sousCategories form">
3 7 <?= $this->Form->create($sousCategory) ?>
... ... @@ -9,7 +13,8 @@
9 13 echo $this->Form->control('nom');
10 14 echo $this->Form->control('categorie_id', [
11 15 'label' => 'Catégorie',
12   - 'options' => $categories
  16 + 'options' => $categories,
  17 + 'default' => $parent_id,
13 18 ]);
14 19 ?>
15 20 </fieldset>
... ...
src/Template/Users/index.ctp
... ... @@ -30,7 +30,9 @@ $nbUsers = $this-&gt;Paginator-&gt;param(&#39;count&#39;);
30 30 //'controller' => 'users',
31 31 //'action' => 'indexRecap',
32 32 //'sort' => 'sur_categorie_id',
33   - 'filtre' => $new_filtre
  33 + 'sort' => 'nom',
  34 + 'direction' => 'asc',
  35 + 'filtre' => $new_filtre,
34 36 ]);
35 37 echo "<br/><br/>";
36 38 ?>
... ...