diff --git a/CHANGELOG b/CHANGELOG index ee191b0..96e2e0f 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -619,18 +619,23 @@ Ne pas autoriser la commande via url si le bouton order est désactivé dans la ... -- ajouter site_id sur user, plus "is_site_only" dans matos (par défaut "false") : "réservé au site" -=> check que quand on va sur site, on voit la liste des users associés (et les matos) -=> associer les users irap à un site -=> ajouter filtre matos/index sur "site" : "tous", "mon site", "belin", "roche", ... -=> fiche users/view : voir son site -=> users/index : voir site +Gestion multi-sites : +- matos.index : doit enlever les matos "sensibles" et qui ont un site différent du user +- matos.view : interdit si matos "sensible" a un site différent du user +- find() : par défaut, enlever les matos "sensibles" et qui ont un site différent du user +- gestionnaires (admin) (et superadmin) continuent d'avoir accès à tout ======= CHANGES ======= ------- +29/11/2021 v5.3.13-3.7.9 + - (b) Bugfix action sur plusieurs matos : + => exporter liste courante => ne doit pas exporter tout + => validation groupée, bouton "valider les materiels cochés" => doit valider + +------- 26/11/2021 v5.3.12-3.7.9 - (e) Préparation du partitionnement optionnel des materiels par site (phase 2/3) => Ajout liste users associés dans vue site (view) diff --git a/README.md b/README.md index c5b5307..67c60a7 100644 --- a/README.md +++ b/README.md @@ -52,8 +52,8 @@ Logiciel testé et validé sur les configurations suivantes : -------------------------------------------------------------------------------------------- -Date: 26/11/2021 -Version: v5.3.11-3.7.9 +Date: 29/11/2021 +Version: v5.3.13-3.7.9 HISTORIQUE DES CHANGEMENTS DE VERSION : voir le fichier CHANGES.txt (ou la page web /pages/changes) diff --git a/src/Controller/MaterielsController.php b/src/Controller/MaterielsController.php index 54b802d..433dec3 100755 --- a/src/Controller/MaterielsController.php +++ b/src/Controller/MaterielsController.php @@ -1337,6 +1337,7 @@ class MaterielsController extends AppController { 'conditions' => $condition ])->count()); */ + //debug($conditions); debug($contain); exit; $materiels = $this->Materiels /* ->find() @@ -1348,7 +1349,6 @@ class MaterielsController extends AppController { 'contain' => $contain ]); //->limit(1000); - if ($age==-1) $materiels = $materiels ->where(function (QueryExpression $exp, Query $q) { return $exp->isNull('date_acquisition'); @@ -4120,13 +4120,15 @@ class MaterielsController extends AppController { * var_dump($this->request->getData()); */ //if (isset($this->request->getData()) && sizeof($this->request->getData()) > 0) { - if (sizeof($this->request->getData()) > 0) { + $data = $this->request->getData(); + if (sizeof($data) > 0) { + //debug($data); exit; $this->myDebug("IN UPDATE"); $this->myDebug($this->request->getData()); $what = $this->request->getData('what'); $nb = 0; if (in_array($what, $this->NOTARCHIVED)) { - foreach ($this->request->getData() as $id => $value) { + foreach ($data as $id => $value) { // seulement les post data integers (id des materiels checked ou non) if (! is_int($id)) continue; @@ -4137,15 +4139,9 @@ class MaterielsController extends AppController { $materielIdentification = $materiel->designation . '-' . $materiel->numero_laboratoire; switch ($what) { case 'CREATED': - /* - $new = 'VALIDATED'; - $msgError = "le materiel " . $materielIdentification . " n'a pas pu être validé car au moins un des champs nécessaire n'est pas rempli."; - */ - $new = 'TOBEORDERED'; - $msgError = "le materiel " . $materielIdentification . " n'a pas pu être commandé (un champ obligatoire est manquant)"; - break; case 'TOBEORDERED': $new = 'VALIDATED'; + //$msgError = "le materiel " . $materielIdentification . " n'a pas pu être commandé (un champ obligatoire est manquant)"; $msgError = "le materiel " . $materielIdentification . " n'a pas pu être validé (un champ obligatoire est manquant)"; break; case 'VALIDATED': @@ -4252,6 +4248,8 @@ class MaterielsController extends AppController { $CAS = 0; + //debug($this->request->getData()); exit; + // CAS 1 - EXPORT uniquement les materiels selectionnés (cochés) if ($this->request->getData('export') !== null) { $CAS = 1; @@ -4271,6 +4269,7 @@ class MaterielsController extends AppController { } $this->myDebug($selectedMateriels); + //debug($selectedMateriels); exit; /* // Si la liste de materiels cochés est vide, ne rien faire if (empty($selectedMateriels)) { @@ -4309,6 +4308,7 @@ class MaterielsController extends AppController { ]); */ } + //else debug("vide"); exit; //$this->myDebug($materiels); //} @@ -4316,8 +4316,9 @@ class MaterielsController extends AppController { // CAS 2 - EXPORT liste courante // (cette fonction export() a été appelée par index()) - //else if ($this->request->getData('exportcurrent') !== null) { - else if (is_array($param) && len($param)>0) { + //else if (is_array($param) && len($param)>0) { + else if ($this->request->getQuery('exportcurrent') !== null && ($param->count())>0) { + //foreach ($param as $m) debug($m->designation); exit; $CAS = 2; $this->myDebug("IN exportCurrent"); $materiels = $param; @@ -4406,10 +4407,10 @@ class MaterielsController extends AppController { // (EP) Si aucun materiel retourné par la sélection => terminé, ne rien faire, basta if (empty($materiels)) { + //debug($what); exit; if ($what != '' && $what != 'search') return $this->redirect(['action' => 'index', $what]); else if ($what == 'search') return $this->redirect('javascript:window.history.go(-3)'); //else return $this->redirect(['action' => 'index']); - return $this->redirect(['action' => 'index']); } /* diff --git a/src/Template/Materiels/index.ctp b/src/Template/Materiels/index.ctp index efab34b..3db043b 100644 --- a/src/Template/Materiels/index.ctp +++ b/src/Template/Materiels/index.ctp @@ -183,9 +183,9 @@ $displayExportCurrentButton = function($params, $html) { ], // Style et tooltip [ - //'class' => 'button', - 'class' => "btn btn-outline-success btn-default", 'title' => 'Exporter la liste courante (avec les paramètres sélectionnés en cours)', + 'class' => "btn btn-outline-success btn-default", + //'class' => 'button', //'style' => 'margin-right: 0px', //'escape' => false ] -- libgit2 0.21.2