Commit b57f9bd3767167149fb9e124763419b54a576ad1
1 parent
5e864eac
Exists in
master
and in
1 other branch
Bugfix Recherche materiels
=> plantait à cause de gestionnaire pas trouvé !! v4.104.2-3.7.9
Showing
3 changed files
with
31 additions
and
21 deletions
Show diff stats
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)); | ... | ... |