Commit 6fdd277f6778a6da3daf944091c571bccc0b7bff
1 parent
a6df1a78
Exists in
master
and in
1 other branch
Bugfix actions sur plusieurs matos
=> exporter liste courante => ne doit pas exporter tout => validation groupée, bouton "valider les materiels cochés" => doit valider v5.3.13-3.7.9
Showing
4 changed files
with
29 additions
and
23 deletions
Show diff stats
CHANGELOG
@@ -619,18 +619,23 @@ Ne pas autoriser la commande via url si le bouton order est désactivé dans la | @@ -619,18 +619,23 @@ Ne pas autoriser la commande via url si le bouton order est désactivé dans la | ||
619 | ... | 619 | ... |
620 | 620 | ||
621 | 621 | ||
622 | -- ajouter site_id sur user, plus "is_site_only" dans matos (par défaut "false") : "réservé au site" | ||
623 | -=> check que quand on va sur site, on voit la liste des users associés (et les matos) | ||
624 | -=> associer les users irap à un site | ||
625 | -=> ajouter filtre matos/index sur "site" : "tous", "mon site", "belin", "roche", ... | ||
626 | -=> fiche users/view : voir son site | ||
627 | -=> users/index : voir site | ||
628 | 622 | ||
623 | +Gestion multi-sites : | ||
624 | +- matos.index : doit enlever les matos "sensibles" et qui ont un site différent du user | ||
625 | +- matos.view : interdit si matos "sensible" a un site différent du user | ||
626 | +- find() : par défaut, enlever les matos "sensibles" et qui ont un site différent du user | ||
627 | +- gestionnaires (admin) (et superadmin) continuent d'avoir accès à tout | ||
629 | 628 | ||
630 | 629 | ||
631 | ======= CHANGES ======= | 630 | ======= CHANGES ======= |
632 | 631 | ||
633 | ------- | 632 | ------- |
633 | +29/11/2021 v5.3.13-3.7.9 | ||
634 | + - (b) Bugfix action sur plusieurs matos : | ||
635 | + => exporter liste courante => ne doit pas exporter tout | ||
636 | + => validation groupée, bouton "valider les materiels cochés" => doit valider | ||
637 | + | ||
638 | +------- | ||
634 | 26/11/2021 v5.3.12-3.7.9 | 639 | 26/11/2021 v5.3.12-3.7.9 |
635 | - (e) Préparation du partitionnement optionnel des materiels par site (phase 2/3) | 640 | - (e) Préparation du partitionnement optionnel des materiels par site (phase 2/3) |
636 | => Ajout liste users associés dans vue site (view) | 641 | => Ajout liste users associés dans vue site (view) |
README.md
@@ -52,8 +52,8 @@ Logiciel testé et validé sur les configurations suivantes : | @@ -52,8 +52,8 @@ Logiciel testé et validé sur les configurations suivantes : | ||
52 | 52 | ||
53 | -------------------------------------------------------------------------------------------- | 53 | -------------------------------------------------------------------------------------------- |
54 | 54 | ||
55 | -Date: 26/11/2021 | ||
56 | -Version: v5.3.11-3.7.9 | 55 | +Date: 29/11/2021 |
56 | +Version: v5.3.13-3.7.9 | ||
57 | 57 | ||
58 | 58 | ||
59 | HISTORIQUE DES CHANGEMENTS DE VERSION : voir le fichier CHANGES.txt (ou la page web /pages/changes) | 59 | HISTORIQUE DES CHANGEMENTS DE VERSION : voir le fichier CHANGES.txt (ou la page web /pages/changes) |
src/Controller/MaterielsController.php
@@ -1337,6 +1337,7 @@ class MaterielsController extends AppController { | @@ -1337,6 +1337,7 @@ class MaterielsController extends AppController { | ||
1337 | 'conditions' => $condition | 1337 | 'conditions' => $condition |
1338 | ])->count()); | 1338 | ])->count()); |
1339 | */ | 1339 | */ |
1340 | + //debug($conditions); debug($contain); exit; | ||
1340 | $materiels = $this->Materiels | 1341 | $materiels = $this->Materiels |
1341 | /* | 1342 | /* |
1342 | ->find() | 1343 | ->find() |
@@ -1348,7 +1349,6 @@ class MaterielsController extends AppController { | @@ -1348,7 +1349,6 @@ class MaterielsController extends AppController { | ||
1348 | 'contain' => $contain | 1349 | 'contain' => $contain |
1349 | ]); | 1350 | ]); |
1350 | //->limit(1000); | 1351 | //->limit(1000); |
1351 | - | ||
1352 | if ($age==-1) $materiels = $materiels | 1352 | if ($age==-1) $materiels = $materiels |
1353 | ->where(function (QueryExpression $exp, Query $q) { | 1353 | ->where(function (QueryExpression $exp, Query $q) { |
1354 | return $exp->isNull('date_acquisition'); | 1354 | return $exp->isNull('date_acquisition'); |
@@ -4120,13 +4120,15 @@ class MaterielsController extends AppController { | @@ -4120,13 +4120,15 @@ class MaterielsController extends AppController { | ||
4120 | * var_dump($this->request->getData()); | 4120 | * var_dump($this->request->getData()); |
4121 | */ | 4121 | */ |
4122 | //if (isset($this->request->getData()) && sizeof($this->request->getData()) > 0) { | 4122 | //if (isset($this->request->getData()) && sizeof($this->request->getData()) > 0) { |
4123 | - if (sizeof($this->request->getData()) > 0) { | 4123 | + $data = $this->request->getData(); |
4124 | + if (sizeof($data) > 0) { | ||
4125 | + //debug($data); exit; | ||
4124 | $this->myDebug("IN UPDATE"); | 4126 | $this->myDebug("IN UPDATE"); |
4125 | $this->myDebug($this->request->getData()); | 4127 | $this->myDebug($this->request->getData()); |
4126 | $what = $this->request->getData('what'); | 4128 | $what = $this->request->getData('what'); |
4127 | $nb = 0; | 4129 | $nb = 0; |
4128 | if (in_array($what, $this->NOTARCHIVED)) { | 4130 | if (in_array($what, $this->NOTARCHIVED)) { |
4129 | - foreach ($this->request->getData() as $id => $value) { | 4131 | + foreach ($data as $id => $value) { |
4130 | // seulement les post data integers (id des materiels checked ou non) | 4132 | // seulement les post data integers (id des materiels checked ou non) |
4131 | if (! is_int($id)) | 4133 | if (! is_int($id)) |
4132 | continue; | 4134 | continue; |
@@ -4137,15 +4139,9 @@ class MaterielsController extends AppController { | @@ -4137,15 +4139,9 @@ class MaterielsController extends AppController { | ||
4137 | $materielIdentification = $materiel->designation . '-' . $materiel->numero_laboratoire; | 4139 | $materielIdentification = $materiel->designation . '-' . $materiel->numero_laboratoire; |
4138 | switch ($what) { | 4140 | switch ($what) { |
4139 | case 'CREATED': | 4141 | case 'CREATED': |
4140 | - /* | ||
4141 | - $new = 'VALIDATED'; | ||
4142 | - $msgError = "le materiel " . $materielIdentification . " n'a pas pu être validé car au moins un des champs nécessaire n'est pas rempli."; | ||
4143 | - */ | ||
4144 | - $new = 'TOBEORDERED'; | ||
4145 | - $msgError = "le materiel " . $materielIdentification . " n'a pas pu être commandé (un champ obligatoire est manquant)"; | ||
4146 | - break; | ||
4147 | case 'TOBEORDERED': | 4142 | case 'TOBEORDERED': |
4148 | $new = 'VALIDATED'; | 4143 | $new = 'VALIDATED'; |
4144 | + //$msgError = "le materiel " . $materielIdentification . " n'a pas pu être commandé (un champ obligatoire est manquant)"; | ||
4149 | $msgError = "le materiel " . $materielIdentification . " n'a pas pu être validé (un champ obligatoire est manquant)"; | 4145 | $msgError = "le materiel " . $materielIdentification . " n'a pas pu être validé (un champ obligatoire est manquant)"; |
4150 | break; | 4146 | break; |
4151 | case 'VALIDATED': | 4147 | case 'VALIDATED': |
@@ -4252,6 +4248,8 @@ class MaterielsController extends AppController { | @@ -4252,6 +4248,8 @@ class MaterielsController extends AppController { | ||
4252 | 4248 | ||
4253 | $CAS = 0; | 4249 | $CAS = 0; |
4254 | 4250 | ||
4251 | + //debug($this->request->getData()); exit; | ||
4252 | + | ||
4255 | // CAS 1 - EXPORT uniquement les materiels selectionnés (cochés) | 4253 | // CAS 1 - EXPORT uniquement les materiels selectionnés (cochés) |
4256 | if ($this->request->getData('export') !== null) { | 4254 | if ($this->request->getData('export') !== null) { |
4257 | $CAS = 1; | 4255 | $CAS = 1; |
@@ -4271,6 +4269,7 @@ class MaterielsController extends AppController { | @@ -4271,6 +4269,7 @@ class MaterielsController extends AppController { | ||
4271 | } | 4269 | } |
4272 | 4270 | ||
4273 | $this->myDebug($selectedMateriels); | 4271 | $this->myDebug($selectedMateriels); |
4272 | + //debug($selectedMateriels); exit; | ||
4274 | /* | 4273 | /* |
4275 | // Si la liste de materiels cochés est vide, ne rien faire | 4274 | // Si la liste de materiels cochés est vide, ne rien faire |
4276 | if (empty($selectedMateriels)) { | 4275 | if (empty($selectedMateriels)) { |
@@ -4309,6 +4308,7 @@ class MaterielsController extends AppController { | @@ -4309,6 +4308,7 @@ class MaterielsController extends AppController { | ||
4309 | ]); | 4308 | ]); |
4310 | */ | 4309 | */ |
4311 | } | 4310 | } |
4311 | + //else debug("vide"); exit; | ||
4312 | //$this->myDebug($materiels); | 4312 | //$this->myDebug($materiels); |
4313 | //} | 4313 | //} |
4314 | 4314 | ||
@@ -4316,8 +4316,9 @@ class MaterielsController extends AppController { | @@ -4316,8 +4316,9 @@ class MaterielsController extends AppController { | ||
4316 | 4316 | ||
4317 | // CAS 2 - EXPORT liste courante | 4317 | // CAS 2 - EXPORT liste courante |
4318 | // (cette fonction export() a été appelée par index()) | 4318 | // (cette fonction export() a été appelée par index()) |
4319 | - //else if ($this->request->getData('exportcurrent') !== null) { | ||
4320 | - else if (is_array($param) && len($param)>0) { | 4319 | + //else if (is_array($param) && len($param)>0) { |
4320 | + else if ($this->request->getQuery('exportcurrent') !== null && ($param->count())>0) { | ||
4321 | + //foreach ($param as $m) debug($m->designation); exit; | ||
4321 | $CAS = 2; | 4322 | $CAS = 2; |
4322 | $this->myDebug("IN exportCurrent"); | 4323 | $this->myDebug("IN exportCurrent"); |
4323 | $materiels = $param; | 4324 | $materiels = $param; |
@@ -4406,10 +4407,10 @@ class MaterielsController extends AppController { | @@ -4406,10 +4407,10 @@ class MaterielsController extends AppController { | ||
4406 | 4407 | ||
4407 | // (EP) Si aucun materiel retourné par la sélection => terminé, ne rien faire, basta | 4408 | // (EP) Si aucun materiel retourné par la sélection => terminé, ne rien faire, basta |
4408 | if (empty($materiels)) { | 4409 | if (empty($materiels)) { |
4410 | + //debug($what); exit; | ||
4409 | if ($what != '' && $what != 'search') return $this->redirect(['action' => 'index', $what]); | 4411 | if ($what != '' && $what != 'search') return $this->redirect(['action' => 'index', $what]); |
4410 | else if ($what == 'search') return $this->redirect('javascript:window.history.go(-3)'); | 4412 | else if ($what == 'search') return $this->redirect('javascript:window.history.go(-3)'); |
4411 | //else return $this->redirect(['action' => 'index']); | 4413 | //else return $this->redirect(['action' => 'index']); |
4412 | - return $this->redirect(['action' => 'index']); | ||
4413 | } | 4414 | } |
4414 | 4415 | ||
4415 | /* | 4416 | /* |
src/Template/Materiels/index.ctp
@@ -183,9 +183,9 @@ $displayExportCurrentButton = function($params, $html) { | @@ -183,9 +183,9 @@ $displayExportCurrentButton = function($params, $html) { | ||
183 | ], | 183 | ], |
184 | // Style et tooltip | 184 | // Style et tooltip |
185 | [ | 185 | [ |
186 | - //'class' => 'button', | ||
187 | - 'class' => "btn btn-outline-success btn-default", | ||
188 | 'title' => 'Exporter la liste courante (avec les paramètres sélectionnés en cours)', | 186 | 'title' => 'Exporter la liste courante (avec les paramètres sélectionnés en cours)', |
187 | + 'class' => "btn btn-outline-success btn-default", | ||
188 | + //'class' => 'button', | ||
189 | //'style' => 'margin-right: 0px', | 189 | //'style' => 'margin-right: 0px', |
190 | //'escape' => false | 190 | //'escape' => false |
191 | ] | 191 | ] |