Commit a6df1a78b9fc74ee3c72d9c05f735948d1ed75a9
1 parent
b214f04f
Exists in
master
and in
1 other branch
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
Showing
9 changed files
with
74 additions
and
18 deletions
Show diff stats
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 && $configuration->hasPrinter && $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', | ... | ... |