Commit 6fdd277f6778a6da3daf944091c571bccc0b7bff

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

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
CHANGELOG
... ... @@ -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 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 639 26/11/2021 v5.3.12-3.7.9
635 640 - (e) Préparation du partitionnement optionnel des materiels par site (phase 2/3)
636 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 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 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 1337 'conditions' => $condition
1338 1338 ])->count());
1339 1339 */
  1340 + //debug($conditions); debug($contain); exit;
1340 1341 $materiels = $this->Materiels
1341 1342 /*
1342 1343 ->find()
... ... @@ -1348,7 +1349,6 @@ class MaterielsController extends AppController {
1348 1349 'contain' => $contain
1349 1350 ]);
1350 1351 //->limit(1000);
1351   -
1352 1352 if ($age==-1) $materiels = $materiels
1353 1353 ->where(function (QueryExpression $exp, Query $q) {
1354 1354 return $exp->isNull('date_acquisition');
... ... @@ -4120,13 +4120,15 @@ class MaterielsController extends AppController {
4120 4120 * var_dump($this->request->getData());
4121 4121 */
4122 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 4126 $this->myDebug("IN UPDATE");
4125 4127 $this->myDebug($this->request->getData());
4126 4128 $what = $this->request->getData('what');
4127 4129 $nb = 0;
4128 4130 if (in_array($what, $this->NOTARCHIVED)) {
4129   - foreach ($this->request->getData() as $id => $value) {
  4131 + foreach ($data as $id => $value) {
4130 4132 // seulement les post data integers (id des materiels checked ou non)
4131 4133 if (! is_int($id))
4132 4134 continue;
... ... @@ -4137,15 +4139,9 @@ class MaterielsController extends AppController {
4137 4139 $materielIdentification = $materiel->designation . '-' . $materiel->numero_laboratoire;
4138 4140 switch ($what) {
4139 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 4142 case 'TOBEORDERED':
4148 4143 $new = 'VALIDATED';
  4144 + //$msgError = "le materiel " . $materielIdentification . " n'a pas pu être commandé (un champ obligatoire est manquant)";
4149 4145 $msgError = "le materiel " . $materielIdentification . " n'a pas pu être validé (un champ obligatoire est manquant)";
4150 4146 break;
4151 4147 case 'VALIDATED':
... ... @@ -4252,6 +4248,8 @@ class MaterielsController extends AppController {
4252 4248  
4253 4249 $CAS = 0;
4254 4250  
  4251 + //debug($this->request->getData()); exit;
  4252 +
4255 4253 // CAS 1 - EXPORT uniquement les materiels selectionnés (cochés)
4256 4254 if ($this->request->getData('export') !== null) {
4257 4255 $CAS = 1;
... ... @@ -4271,6 +4269,7 @@ class MaterielsController extends AppController {
4271 4269 }
4272 4270  
4273 4271 $this->myDebug($selectedMateriels);
  4272 + //debug($selectedMateriels); exit;
4274 4273 /*
4275 4274 // Si la liste de materiels cochés est vide, ne rien faire
4276 4275 if (empty($selectedMateriels)) {
... ... @@ -4309,6 +4308,7 @@ class MaterielsController extends AppController {
4309 4308 ]);
4310 4309 */
4311 4310 }
  4311 + //else debug("vide"); exit;
4312 4312 //$this->myDebug($materiels);
4313 4313 //}
4314 4314  
... ... @@ -4316,8 +4316,9 @@ class MaterielsController extends AppController {
4316 4316  
4317 4317 // CAS 2 - EXPORT liste courante
4318 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 4322 $CAS = 2;
4322 4323 $this->myDebug("IN exportCurrent");
4323 4324 $materiels = $param;
... ... @@ -4406,10 +4407,10 @@ class MaterielsController extends AppController {
4406 4407  
4407 4408 // (EP) Si aucun materiel retourné par la sélection => terminé, ne rien faire, basta
4408 4409 if (empty($materiels)) {
  4410 + //debug($what); exit;
4409 4411 if ($what != '' && $what != 'search') return $this->redirect(['action' => 'index', $what]);
4410 4412 else if ($what == 'search') return $this->redirect('javascript:window.history.go(-3)');
4411 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 183 ],
184 184 // Style et tooltip
185 185 [
186   - //'class' => 'button',
187   - 'class' => "btn btn-outline-success btn-default",
188 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 189 //'style' => 'margin-right: 0px',
190 190 //'escape' => false
191 191 ]
... ...