Commit a6df1a78b9fc74ee3c72d9c05f735948d1ed75a9

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

Préparation du partitionnement des materiels par site (phase 2/3)

=> Ajout liste users associés dans vue site (view)
=> Ajout champ site_id dans vues users edit, view, et index : "site"
=> Ajout champ is_site_only dans vues materiels edit, view, et index :
"(réservé au site)"

v5.3.12-3.7.9
CHANGELOG
... ... @@ -631,8 +631,15 @@ Ne pas autoriser la commande via url si le bouton order est désactivé dans la
631 631 ======= CHANGES =======
632 632  
633 633 -------
  634 +26/11/2021 v5.3.12-3.7.9
  635 + - (e) Préparation du partitionnement optionnel des materiels par site (phase 2/3)
  636 + => Ajout liste users associés dans vue site (view)
  637 + => Ajout champ site_id dans vues users edit, view, et index : "site"
  638 + => Ajout champ is_site_only dans vues materiels edit, view, et index : "(réservé au site)"
  639 +
  640 +-------
634 641 26/11/2021 v5.3.11-3.7.9
635   - - (i) Préparation du partitionnement optionnel des materiels par site
  642 + - (i) Préparation du partitionnement optionnel des materiels par site (phase 1/3)
636 643 => Ajout de nouveaux champs site_id et is_site_only dans les tables users et materiels (resp.)
637 644 - (a) Attention, update bd
638 645  
... ...
src/Controller/SitesController.php
... ... @@ -85,7 +85,7 @@ class SitesController extends AppController
85 85 */
86 86 public function view($id = null) {
87 87  
88   - return $this->view_generic($id, ['Emprunts', 'Materiels',]);
  88 + return $this->view_generic($id, ['Emprunts', 'Materiels', 'Users']);
89 89  
90 90 /*
91 91 $site = $this->Sites->get($id, [
... ...
src/Controller/UsersController.php
... ... @@ -549,6 +549,7 @@ class UsersController extends AppController {
549 549 */
550 550  
551 551 $contains = [
  552 + 'Sites',
552 553 'GroupesThematiques',
553 554 'GroupesMetiers',
554 555 'SurCategories'
... ... @@ -558,6 +559,7 @@ class UsersController extends AppController {
558 559 'nom' => 'nom',
559 560 'email' => 'email',
560 561 'role' => 'role',
  562 + 'site_id' => 'Sites.nom',
561 563 'groupes_thematique_id' => 'GroupesThematiques.nom',
562 564 'groupes_metier_id' => 'GroupesMetiers.nom',
563 565 'sur_categorie_id' => 'SurCategories.nom',
... ... @@ -571,6 +573,10 @@ class UsersController extends AppController {
571 573 'nom' => [],
572 574 'email' => [],
573 575 'role' => [],
  576 + 'site_id'=>[
  577 + //'nice_name'=>'Domaine',
  578 + 'contained_entity_name'=>'site', 'controller_name'=>'Sites',
  579 + ],
574 580 'groupes_thematique_id'=>[
575 581 //'nice_name'=>'Groupe Thématique',
576 582 'contained_entity_name'=>'groupes_thematique',
... ... @@ -714,9 +720,10 @@ class UsersController extends AppController {
714 720  
715 721 $user = $this->Users->get($id, [
716 722 'contain' => [
717   - 'GroupesMetiers',
718   - 'GroupesThematiques',
719   - 'SurCategories'
  723 + //'Sites',
  724 + //'GroupesMetiers',
  725 + //'GroupesThematiques',
  726 + //'SurCategories'
720 727 ]
721 728 ]);
722 729 $this->set('user', $user);
... ... @@ -824,7 +831,9 @@ class UsersController extends AppController {
824 831 public function edit($id = null)
825 832 {
826 833 $user = $this->Users->get($id, [
827   - 'contain' => []
  834 + 'contain' => [
  835 + //'Sites',
  836 + ]
828 837 ]);
829 838 if ($this->request->is([
830 839 'patch',
... ... @@ -856,6 +865,10 @@ class UsersController extends AppController {
856 865 $this->Flash->error(__("L'utilisateur n'a pas pu être modifié"));
857 866 }
858 867 }
  868 + $sites = $this->Users->Sites->find('list', [
  869 + 'keyField' => 'id',
  870 + 'valueField' => 'nom'
  871 + ]);
859 872 $groupesMetiers = $this->Users->GroupesMetiers->find('list', [
860 873 'keyField' => 'id',
861 874 'valueField' => 'nom'
... ... @@ -880,10 +893,12 @@ class UsersController extends AppController {
880 893 'keyField' => 'id',
881 894 'valueField' => 'nom'
882 895 ]);
883   - $this->set(compact('user', 'groupesMetiers', 'groupesThematiques', 'sur_categorie'));
  896 + $this->set(compact('user', 'sites', 'groupesMetiers', 'groupesThematiques', 'sur_categorie'));
  897 + /* inutile si pas json
884 898 $this->set('_serialize', [
885 899 'user'
886 900 ]);
  901 + */
887 902 } // edit()
888 903  
889 904 /**
... ...
src/Model/Table/SitesTable.php
... ... @@ -28,6 +28,10 @@ class SitesTable extends AppTable
28 28 //$this->setDisplayField('id');
29 29 $this->setDisplayField('nom');
30 30 $this->setPrimaryKey('id');
  31 +
  32 + $this->hasMany('Users', [
  33 + 'foreignKey' => 'site_id'
  34 + ]);
31 35  
32 36 $this->hasMany('Materiels', [
33 37 'foreignKey' => 'site_id'
... ...
src/Model/Table/UsersTable.php
... ... @@ -12,10 +12,12 @@ use Cake\ORM\TableRegistry;
12 12 * @property \Cake\ORM\Association\BelongsTo $GroupesThematiques
13 13 * @property \Cake\ORM\Association\BelongsTo $GroupesMetiers
14 14 * @property \Cake\ORM\Association\BelongsTo $SurCategories
  15 + * @property \Cake\ORM\Association\BelongsTo $Sites
15 16 */
16 17 class UsersTable extends AppTable
17 18 {
18 19  
  20 +
19 21 /**
20 22 * Initialize method
21 23 *
... ... @@ -31,6 +33,10 @@ class UsersTable extends AppTable
31 33 //$this->setDisplayField('id');
32 34 $this->setDisplayField('nom');
33 35 $this->setPrimaryKey('id');
  36 +
  37 + $this->belongsTo('Sites', [
  38 + 'foreignKey' => 'site_id'
  39 + ]);
34 40  
35 41 $this->belongsTo('GroupesMetiers', [
36 42 'foreignKey' => 'groupes_metier_id'
... ...
src/Template/Element/materiels_list.ctp
... ... @@ -391,13 +391,14 @@ $displayActionButtonsForMateriel = function($materiel, $statuses_color, $usernam
391 391 <td class="smallText"><?= $materiel->has('fournisseur') ? h($materiel->fournisseur->nom) : '' ?></td>
392 392  
393 393 <?php
394   - $lieu = $materiel->has('site') ? h($materiel->site->nom) : '';
395   - if ($materiel->lieu_detail) {
396   - if ($materiel->has('site')) $lieu .= '-';
397   - $lieu .= $materiel->lieu_detail;
  394 + $site_lieu = '';
  395 + if ($materiel->has('site')) {
  396 + $site_lieu = h($materiel->site->nom);
  397 + if ($materiel->lieu_detail) $site_lieu .= ' - '.h($materiel->lieu_detail);
  398 + if ($materiel->is_site_only) $site_lieu .= ' (réservé au site)';
398 399 }
399 400 ?>
400   - <td class="smallText"><?=$lieu?></td>
  401 + <td class="smallText"><?=$site_lieu?></td>
401 402  
402 403 <!--
403 404 <td class="smallText"><= $materiel->has('organisme') ? h($materiel->organisme->nom) : '' ?></td>
... ...
src/Template/Materiels/add_edit.ctp
... ... @@ -77,9 +77,9 @@ $IS_EDIT = !$IS_ADD;
77 77 $CAN_PRINT_LABEL = $CAN_PRINT_LABEL;
78 78  
79 79 $entity = $entity;
  80 +//debug($entity);
80 81 // @deprecated
81 82 $materiel = $entity;
82   -//debug($entity);
83 83  
84 84 $statuses = $statuses;
85 85  
... ... @@ -404,7 +404,7 @@ if (isset($cpMateriel)) {
404 404 'disabled' => $IS_ADD ? false : $this->MyHelper->isReadonlyField($f, $readonlyFields)
405 405 ]);
406 406 */
407   -
  407 +
408 408 // - Technique et/ou Inventoriable ?
409 409 echo $this->MyHelper->control($IS_ADD, $readonlyFields, 'materiel_technique', "Technique (pas pour l'inventaire officiel)");
410 410 /*
... ... @@ -670,7 +670,7 @@ if (isset($cpMateriel)) {
670 670  
671 671  
672 672  
673   - // - Site
  673 + // - Site (+ réservé ?)
674 674 echo $this->MyHelper->control($IS_ADD, $readonlyFields, 'site_id', null, 'N/A');
675 675 /*
676 676 echo $this->Form->control('site_id', [
... ... @@ -685,6 +685,9 @@ if (isset($cpMateriel)) {
685 685 'disabled' => $IS_ADD ? false : $isReadonlyField('site_id', $readonlyFields)
686 686 ]);
687 687 */
  688 + // réservé au site
  689 + echo $this->MyHelper->control($IS_ADD, $readonlyFields, 'is_site_only', 'Ce matériel est réservé au site');
  690 +
688 691  
689 692 // - Detail lieu stockage (avec affichage auto des lieux déjà saisis)
690 693 /* OLD
... ...
src/Template/Materiels/view.ctp
... ... @@ -776,9 +776,18 @@ $CAN_PRINT_LABEL = $IS_VALIDATED &amp;&amp; $configuration-&gt;hasPrinter &amp;&amp; $USER_IS_ADMIN
776 776 ['controller'=>'Fournisseurs', 'action'=>'view', $entity->fournisseur->id]
777 777 )
778 778 );
779   -
780   - $displayElement(__('Lieu de stockage'), $entity->has('site') ? h($entity->site->nom) : '');
781   - $displayElement(__('Détail lieu de stockage'), h($entity->lieu_detail));
  779 +
  780 + // Site et lieu de stockage
  781 + if ($entity->has('site')) {
  782 + $site_lieu = h($entity->site->nom);
  783 + if ($entity->lieu_detail) $site_lieu .= ' - '.h($entity->lieu_detail);
  784 + if ($entity->is_site_only) $site_lieu .= ' (réservé au site)';
  785 + $displayElement(__('Site - lieu de stockage'), $site_lieu);
  786 + /*
  787 + $displayElement(__('Lieu de stockage (site)'), $entity->has('site') ? h($entity->site->nom) : '');
  788 + $displayElement(__('Détail lieu de stockage'), h($entity->lieu_detail));
  789 + */
  790 + }
782 791  
783 792 // - Acheteur (lien mailto)
784 793 $displayElement(__("Nom de l'acheteur"),
... ...
src/Template/Users/edit.ctp
1 1 <?php
2 2 // Variables passées par le controleur
  3 +$sites = $sites;
3 4 $groupesMetiers = $groupesMetiers;
4 5 $groupesThematiques = $groupesThematiques;
5 6 $sur_categorie = $sur_categorie;
6 7 // ...
7 8  
  9 +//debug ($user);
  10 +//debug($sites);
  11 +//debug($groupesMetiers);
8 12 //debug($groupesThematiques);
9 13 ?>
10 14  
... ... @@ -76,6 +80,13 @@ $sur_categorie = $sur_categorie;
76 80 //'readonly' => $READONLY
77 81 'readonly' => true
78 82 ]);
  83 +
  84 + echo $this->Form->control('site_id', [
  85 + //'label' => $configuration->nom_groupe_metier,
  86 + 'options' => $sites,
  87 + 'empty' => 'N/A',
  88 + //'default' => 1
  89 + ]);
79 90  
80 91 echo $this->Form->control('role', [
81 92 'label' => 'Rôle',
... ...