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,8 +631,15 @@ Ne pas autoriser la commande via url si le bouton order est désactivé dans la | ||
631 | ======= CHANGES ======= | 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 | 26/11/2021 v5.3.11-3.7.9 | 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 | => Ajout de nouveaux champs site_id et is_site_only dans les tables users et materiels (resp.) | 643 | => Ajout de nouveaux champs site_id et is_site_only dans les tables users et materiels (resp.) |
637 | - (a) Attention, update bd | 644 | - (a) Attention, update bd |
638 | 645 |
src/Controller/SitesController.php
@@ -85,7 +85,7 @@ class SitesController extends AppController | @@ -85,7 +85,7 @@ class SitesController extends AppController | ||
85 | */ | 85 | */ |
86 | public function view($id = null) { | 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 | $site = $this->Sites->get($id, [ | 91 | $site = $this->Sites->get($id, [ |
src/Controller/UsersController.php
@@ -549,6 +549,7 @@ class UsersController extends AppController { | @@ -549,6 +549,7 @@ class UsersController extends AppController { | ||
549 | */ | 549 | */ |
550 | 550 | ||
551 | $contains = [ | 551 | $contains = [ |
552 | + 'Sites', | ||
552 | 'GroupesThematiques', | 553 | 'GroupesThematiques', |
553 | 'GroupesMetiers', | 554 | 'GroupesMetiers', |
554 | 'SurCategories' | 555 | 'SurCategories' |
@@ -558,6 +559,7 @@ class UsersController extends AppController { | @@ -558,6 +559,7 @@ class UsersController extends AppController { | ||
558 | 'nom' => 'nom', | 559 | 'nom' => 'nom', |
559 | 'email' => 'email', | 560 | 'email' => 'email', |
560 | 'role' => 'role', | 561 | 'role' => 'role', |
562 | + 'site_id' => 'Sites.nom', | ||
561 | 'groupes_thematique_id' => 'GroupesThematiques.nom', | 563 | 'groupes_thematique_id' => 'GroupesThematiques.nom', |
562 | 'groupes_metier_id' => 'GroupesMetiers.nom', | 564 | 'groupes_metier_id' => 'GroupesMetiers.nom', |
563 | 'sur_categorie_id' => 'SurCategories.nom', | 565 | 'sur_categorie_id' => 'SurCategories.nom', |
@@ -571,6 +573,10 @@ class UsersController extends AppController { | @@ -571,6 +573,10 @@ class UsersController extends AppController { | ||
571 | 'nom' => [], | 573 | 'nom' => [], |
572 | 'email' => [], | 574 | 'email' => [], |
573 | 'role' => [], | 575 | 'role' => [], |
576 | + 'site_id'=>[ | ||
577 | + //'nice_name'=>'Domaine', | ||
578 | + 'contained_entity_name'=>'site', 'controller_name'=>'Sites', | ||
579 | + ], | ||
574 | 'groupes_thematique_id'=>[ | 580 | 'groupes_thematique_id'=>[ |
575 | //'nice_name'=>'Groupe Thématique', | 581 | //'nice_name'=>'Groupe Thématique', |
576 | 'contained_entity_name'=>'groupes_thematique', | 582 | 'contained_entity_name'=>'groupes_thematique', |
@@ -714,9 +720,10 @@ class UsersController extends AppController { | @@ -714,9 +720,10 @@ class UsersController extends AppController { | ||
714 | 720 | ||
715 | $user = $this->Users->get($id, [ | 721 | $user = $this->Users->get($id, [ |
716 | 'contain' => [ | 722 | 'contain' => [ |
717 | - 'GroupesMetiers', | ||
718 | - 'GroupesThematiques', | ||
719 | - 'SurCategories' | 723 | + //'Sites', |
724 | + //'GroupesMetiers', | ||
725 | + //'GroupesThematiques', | ||
726 | + //'SurCategories' | ||
720 | ] | 727 | ] |
721 | ]); | 728 | ]); |
722 | $this->set('user', $user); | 729 | $this->set('user', $user); |
@@ -824,7 +831,9 @@ class UsersController extends AppController { | @@ -824,7 +831,9 @@ class UsersController extends AppController { | ||
824 | public function edit($id = null) | 831 | public function edit($id = null) |
825 | { | 832 | { |
826 | $user = $this->Users->get($id, [ | 833 | $user = $this->Users->get($id, [ |
827 | - 'contain' => [] | 834 | + 'contain' => [ |
835 | + //'Sites', | ||
836 | + ] | ||
828 | ]); | 837 | ]); |
829 | if ($this->request->is([ | 838 | if ($this->request->is([ |
830 | 'patch', | 839 | 'patch', |
@@ -856,6 +865,10 @@ class UsersController extends AppController { | @@ -856,6 +865,10 @@ class UsersController extends AppController { | ||
856 | $this->Flash->error(__("L'utilisateur n'a pas pu être modifié")); | 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 | $groupesMetiers = $this->Users->GroupesMetiers->find('list', [ | 872 | $groupesMetiers = $this->Users->GroupesMetiers->find('list', [ |
860 | 'keyField' => 'id', | 873 | 'keyField' => 'id', |
861 | 'valueField' => 'nom' | 874 | 'valueField' => 'nom' |
@@ -880,10 +893,12 @@ class UsersController extends AppController { | @@ -880,10 +893,12 @@ class UsersController extends AppController { | ||
880 | 'keyField' => 'id', | 893 | 'keyField' => 'id', |
881 | 'valueField' => 'nom' | 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 | $this->set('_serialize', [ | 898 | $this->set('_serialize', [ |
885 | 'user' | 899 | 'user' |
886 | ]); | 900 | ]); |
901 | + */ | ||
887 | } // edit() | 902 | } // edit() |
888 | 903 | ||
889 | /** | 904 | /** |
src/Model/Table/SitesTable.php
@@ -28,6 +28,10 @@ class SitesTable extends AppTable | @@ -28,6 +28,10 @@ class SitesTable extends AppTable | ||
28 | //$this->setDisplayField('id'); | 28 | //$this->setDisplayField('id'); |
29 | $this->setDisplayField('nom'); | 29 | $this->setDisplayField('nom'); |
30 | $this->setPrimaryKey('id'); | 30 | $this->setPrimaryKey('id'); |
31 | + | ||
32 | + $this->hasMany('Users', [ | ||
33 | + 'foreignKey' => 'site_id' | ||
34 | + ]); | ||
31 | 35 | ||
32 | $this->hasMany('Materiels', [ | 36 | $this->hasMany('Materiels', [ |
33 | 'foreignKey' => 'site_id' | 37 | 'foreignKey' => 'site_id' |
src/Model/Table/UsersTable.php
@@ -12,10 +12,12 @@ use Cake\ORM\TableRegistry; | @@ -12,10 +12,12 @@ use Cake\ORM\TableRegistry; | ||
12 | * @property \Cake\ORM\Association\BelongsTo $GroupesThematiques | 12 | * @property \Cake\ORM\Association\BelongsTo $GroupesThematiques |
13 | * @property \Cake\ORM\Association\BelongsTo $GroupesMetiers | 13 | * @property \Cake\ORM\Association\BelongsTo $GroupesMetiers |
14 | * @property \Cake\ORM\Association\BelongsTo $SurCategories | 14 | * @property \Cake\ORM\Association\BelongsTo $SurCategories |
15 | + * @property \Cake\ORM\Association\BelongsTo $Sites | ||
15 | */ | 16 | */ |
16 | class UsersTable extends AppTable | 17 | class UsersTable extends AppTable |
17 | { | 18 | { |
18 | 19 | ||
20 | + | ||
19 | /** | 21 | /** |
20 | * Initialize method | 22 | * Initialize method |
21 | * | 23 | * |
@@ -31,6 +33,10 @@ class UsersTable extends AppTable | @@ -31,6 +33,10 @@ class UsersTable extends AppTable | ||
31 | //$this->setDisplayField('id'); | 33 | //$this->setDisplayField('id'); |
32 | $this->setDisplayField('nom'); | 34 | $this->setDisplayField('nom'); |
33 | $this->setPrimaryKey('id'); | 35 | $this->setPrimaryKey('id'); |
36 | + | ||
37 | + $this->belongsTo('Sites', [ | ||
38 | + 'foreignKey' => 'site_id' | ||
39 | + ]); | ||
34 | 40 | ||
35 | $this->belongsTo('GroupesMetiers', [ | 41 | $this->belongsTo('GroupesMetiers', [ |
36 | 'foreignKey' => 'groupes_metier_id' | 42 | 'foreignKey' => 'groupes_metier_id' |
src/Template/Element/materiels_list.ctp
@@ -391,13 +391,14 @@ $displayActionButtonsForMateriel = function($materiel, $statuses_color, $usernam | @@ -391,13 +391,14 @@ $displayActionButtonsForMateriel = function($materiel, $statuses_color, $usernam | ||
391 | <td class="smallText"><?= $materiel->has('fournisseur') ? h($materiel->fournisseur->nom) : '' ?></td> | 391 | <td class="smallText"><?= $materiel->has('fournisseur') ? h($materiel->fournisseur->nom) : '' ?></td> |
392 | 392 | ||
393 | <?php | 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 | <td class="smallText"><= $materiel->has('organisme') ? h($materiel->organisme->nom) : '' ?></td> | 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,9 +77,9 @@ $IS_EDIT = !$IS_ADD; | ||
77 | $CAN_PRINT_LABEL = $CAN_PRINT_LABEL; | 77 | $CAN_PRINT_LABEL = $CAN_PRINT_LABEL; |
78 | 78 | ||
79 | $entity = $entity; | 79 | $entity = $entity; |
80 | +//debug($entity); | ||
80 | // @deprecated | 81 | // @deprecated |
81 | $materiel = $entity; | 82 | $materiel = $entity; |
82 | -//debug($entity); | ||
83 | 83 | ||
84 | $statuses = $statuses; | 84 | $statuses = $statuses; |
85 | 85 | ||
@@ -404,7 +404,7 @@ if (isset($cpMateriel)) { | @@ -404,7 +404,7 @@ if (isset($cpMateriel)) { | ||
404 | 'disabled' => $IS_ADD ? false : $this->MyHelper->isReadonlyField($f, $readonlyFields) | 404 | 'disabled' => $IS_ADD ? false : $this->MyHelper->isReadonlyField($f, $readonlyFields) |
405 | ]); | 405 | ]); |
406 | */ | 406 | */ |
407 | - | 407 | + |
408 | // - Technique et/ou Inventoriable ? | 408 | // - Technique et/ou Inventoriable ? |
409 | echo $this->MyHelper->control($IS_ADD, $readonlyFields, 'materiel_technique', "Technique (pas pour l'inventaire officiel)"); | 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,7 +670,7 @@ if (isset($cpMateriel)) { | ||
670 | 670 | ||
671 | 671 | ||
672 | 672 | ||
673 | - // - Site | 673 | + // - Site (+ réservé ?) |
674 | echo $this->MyHelper->control($IS_ADD, $readonlyFields, 'site_id', null, 'N/A'); | 674 | echo $this->MyHelper->control($IS_ADD, $readonlyFields, 'site_id', null, 'N/A'); |
675 | /* | 675 | /* |
676 | echo $this->Form->control('site_id', [ | 676 | echo $this->Form->control('site_id', [ |
@@ -685,6 +685,9 @@ if (isset($cpMateriel)) { | @@ -685,6 +685,9 @@ if (isset($cpMateriel)) { | ||
685 | 'disabled' => $IS_ADD ? false : $isReadonlyField('site_id', $readonlyFields) | 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 | // - Detail lieu stockage (avec affichage auto des lieux déjà saisis) | 692 | // - Detail lieu stockage (avec affichage auto des lieux déjà saisis) |
690 | /* OLD | 693 | /* OLD |
src/Template/Materiels/view.ctp
@@ -776,9 +776,18 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN | @@ -776,9 +776,18 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN | ||
776 | ['controller'=>'Fournisseurs', 'action'=>'view', $entity->fournisseur->id] | 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 | // - Acheteur (lien mailto) | 792 | // - Acheteur (lien mailto) |
784 | $displayElement(__("Nom de l'acheteur"), | 793 | $displayElement(__("Nom de l'acheteur"), |
src/Template/Users/edit.ctp
1 | <?php | 1 | <?php |
2 | // Variables passées par le controleur | 2 | // Variables passées par le controleur |
3 | +$sites = $sites; | ||
3 | $groupesMetiers = $groupesMetiers; | 4 | $groupesMetiers = $groupesMetiers; |
4 | $groupesThematiques = $groupesThematiques; | 5 | $groupesThematiques = $groupesThematiques; |
5 | $sur_categorie = $sur_categorie; | 6 | $sur_categorie = $sur_categorie; |
6 | // ... | 7 | // ... |
7 | 8 | ||
9 | +//debug ($user); | ||
10 | +//debug($sites); | ||
11 | +//debug($groupesMetiers); | ||
8 | //debug($groupesThematiques); | 12 | //debug($groupesThematiques); |
9 | ?> | 13 | ?> |
10 | 14 | ||
@@ -76,6 +80,13 @@ $sur_categorie = $sur_categorie; | @@ -76,6 +80,13 @@ $sur_categorie = $sur_categorie; | ||
76 | //'readonly' => $READONLY | 80 | //'readonly' => $READONLY |
77 | 'readonly' => true | 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 | echo $this->Form->control('role', [ | 91 | echo $this->Form->control('role', [ |
81 | 'label' => 'Rôle', | 92 | 'label' => 'Rôle', |