Commit b57f9bd3767167149fb9e124763419b54a576ad1

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

Bugfix Recherche materiels

=> plantait à cause de gestionnaire pas trouvé !!

v4.104.2-3.7.9
CHANGES.txt
... ... @@ -121,7 +121,8 @@ Outre ces changements, voici d'autres changements importants :
121 121  
122 122  
123 123 -------
124   -02/10/2020 v4.104.1-3.7.9 (EP)
  124 +02/10/2020 v4.104.2-3.7.9 (EP)
  125 + - (b) Bugfix Recherche materiels => plantait à cause de gestionnaire pas trouvé !!
125 126 - (i) Modif contrainte intégrité entre materiel et groupes metier/thematique => SET NULL
126 127 (afin de pouvoir supprimer un groupe metier/thematique même s'il a des matos associés)
127 128 - (e) Nouveau bouton "Exporter la liste courante" sur la vue liste des matériels (materiels/index)
... ...
README.md
... ... @@ -43,7 +43,7 @@ Logiciel testé et validé sur les configurations suivantes :
43 43 --------------------------------------------------------------------------------------------
44 44  
45 45 Date: 02/10/2020
46   -Version: 4.104.1-3.7.9
  46 +Version: 4.104.2-3.7.9
47 47  
48 48  
49 49 HISTORIQUE DES CHANGEMENTS DE VERSION : voir le fichier CHANGES.txt (ou la page web /pages/changes)
... ...
src/Controller/MaterielsController.php
... ... @@ -3126,7 +3126,7 @@ class MaterielsController extends AppController {
3126 3126 if ( $this->request->getData('s_all_2') || $this->request->getData('s_all') ) {
3127 3127 // - Recherche globale
3128 3128 // debug("recherche globale"); exit;
3129   - $general_search_field_name = $this->request->getData('s_all_2') ? 's_all_2':'s_all';
  3129 + $general_search_field_name = $this->request->getData('s_all_2') ? 's_all_2' : 's_all';
3130 3130 $conditions = $this->find_general($general_search_field_name);
3131 3131 //debug($conditions); exit;
3132 3132 /*
... ... @@ -3149,14 +3149,16 @@ class MaterielsController extends AppController {
3149 3149 $conditions = [ $conditions, $conditionNotArchived ];
3150 3150 //debug($conditions); exit;
3151 3151  
  3152 + $limit_max = 1000;
  3153 +
3152 3154 $lastResults = $this->Materiels->find('all', [
3153 3155 'conditions' => $conditions,
3154   - 'contain' => ['Categories', 'Fournisseurs', 'Organismes', 'Projets']
3155   - ])->limit(1000);
  3156 + 'contain' => ['Categories', 'Fournisseurs', 'Organismes', 'Projets', 'Users']
  3157 + ])->limit($limit_max);
3156 3158  
3157 3159 $this->paginate = [
3158   - 'maxLimit' => 1000,
3159   - 'limit' => 1000
  3160 + 'maxLimit' => $limit_max,
  3161 + 'limit' => $limit_max
3160 3162 ];
3161 3163 //debug($lastResults); exit;
3162 3164 $_results = $this->paginate($lastResults);
... ... @@ -3206,7 +3208,7 @@ class MaterielsController extends AppController {
3206 3208 }
3207 3209 */
3208 3210 $res = $this->Materiels->find()
3209   - ->limit(1000)
  3211 + ->limit($limit_max)
3210 3212 // (EP) Attention, si on ajoute un "->contain", on devra utiliser 'Materiels.id' et non pas 'id' tout seul (ci-dessous)
3211 3213 ->contain(['Categories', 'Fournisseurs', 'Organismes']);
3212 3214 //->firstOrFail();
... ... @@ -3221,8 +3223,8 @@ class MaterielsController extends AppController {
3221 3223 ]);
3222 3224 }
3223 3225 $this->paginate = [
3224   - 'maxLimit' => 1000,
3225   - 'limit' => 1000
  3226 + 'maxLimit' => $limit_max,
  3227 + 'limit' => $limit_max
3226 3228 ];
3227 3229 $_results = $this->paginate($res);
3228 3230 $this->set(compact('_results'));
... ... @@ -3341,7 +3343,7 @@ class MaterielsController extends AppController {
3341 3343 * Optional parameter "what:value" may be passed when calling this action, and is read from $this->getAttribute('params')['named']['what']
3342 3344 * ex : materiels/export/what:toValidate
3343 3345 */
3344   - public function export($materiels_list = null)
  3346 + public function export($param = null)
3345 3347 {
3346 3348  
3347 3349 function getElementFromList($listName, $materiel, $fkName) {
... ... @@ -3457,10 +3459,10 @@ class MaterielsController extends AppController {
3457 3459 // CAS 2 - EXPORT liste courante
3458 3460 // (cette fonction export() a été appelée par index())
3459 3461 //else if ($this->request->getData('exportcurrent') !== null) {
3460   - else if ($materiels_list) {
  3462 + else if (is_array($param) && len($param)>0) {
3461 3463 $CAS = 2;
3462 3464 $this->myDebug("IN exportCurrent");
3463   - $materiels = $materiels_list;
  3465 + $materiels = $param;
3464 3466 //debug($materiels->toArray()); exit;
3465 3467 } // CAS 2
3466 3468  
... ... @@ -3507,20 +3509,26 @@ class MaterielsController extends AppController {
3507 3509 }
3508 3510 $this->myDebug("what is " . $what);
3509 3511 $this->myDebug("statut is " . $status);
3510   -
3511 3512  
  3513 + }
  3514 +
3512 3515 // CAS 4 - Export du résultat de Recherche (find)
3513   - } else if (isset($this->request->getAttribute('params')['pass'][0])) {
  3516 + else if (
  3517 + $param == 'search'
  3518 + // C'est la meme chose que ci-dessus, mais bon...
  3519 + && isset($this->request->getAttribute('params')['pass'][0])
  3520 + && $this->request->getAttribute('params')['pass'][0] == 'search'
  3521 + ) {
3514 3522 $CAS = 4;
3515 3523 $this->myDebug("RECHERCHE");
3516 3524 $what = $this->request->getAttribute('params')['pass'][0];
3517   -
3518   - if ($what == 'search') {
3519   - $materiels = $this->request->getSession()->read("result");
3520   - }
3521   -
  3525 + //if ($what == 'search') {
  3526 + $materiels = $this->request->getSession()->read("result");
  3527 + //}
  3528 + }
  3529 +
3522 3530 // CAS 5 (???) - Tous les matériels (sauf ARCHIVED)
3523   - } else {
  3531 + else {
3524 3532 $CAS = 5;
3525 3533 $this->myDebug("OTHER CASE 4");
3526 3534 /*
... ... @@ -3555,6 +3563,7 @@ class MaterielsController extends AppController {
3555 3563  
3556 3564 // NOW, CREATE THE CSV file from $materiels
3557 3565  
  3566 + //debug($materiels[0]);exit;
3558 3567 if ($CAS == 4)
3559 3568 // Tableau de materiels, chaque materiel étant un objet query
3560 3569 $this->myDebug("Nb matos = " . count($materiels));
... ...