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
@@ -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)
@@ -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 ]