diff --git a/CHANGES.txt b/CHANGES.txt index 596ee3f..db01585 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -121,7 +121,8 @@ Outre ces changements, voici d'autres changements importants : ------- -02/10/2020 v4.104.1-3.7.9 (EP) +02/10/2020 v4.104.2-3.7.9 (EP) + - (b) Bugfix Recherche materiels => plantait à cause de gestionnaire pas trouvé !! - (i) Modif contrainte intégrité entre materiel et groupes metier/thematique => SET NULL (afin de pouvoir supprimer un groupe metier/thematique même s'il a des matos associés) - (e) Nouveau bouton "Exporter la liste courante" sur la vue liste des matériels (materiels/index) diff --git a/README.md b/README.md index 4165720..81a76db 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ Logiciel testé et validé sur les configurations suivantes : -------------------------------------------------------------------------------------------- Date: 02/10/2020 -Version: 4.104.1-3.7.9 +Version: 4.104.2-3.7.9 HISTORIQUE DES CHANGEMENTS DE VERSION : voir le fichier CHANGES.txt (ou la page web /pages/changes) diff --git a/src/Controller/MaterielsController.php b/src/Controller/MaterielsController.php index f849939..5b1ebfa 100755 --- a/src/Controller/MaterielsController.php +++ b/src/Controller/MaterielsController.php @@ -3126,7 +3126,7 @@ class MaterielsController extends AppController { if ( $this->request->getData('s_all_2') || $this->request->getData('s_all') ) { // - Recherche globale // debug("recherche globale"); exit; - $general_search_field_name = $this->request->getData('s_all_2') ? 's_all_2':'s_all'; + $general_search_field_name = $this->request->getData('s_all_2') ? 's_all_2' : 's_all'; $conditions = $this->find_general($general_search_field_name); //debug($conditions); exit; /* @@ -3149,14 +3149,16 @@ class MaterielsController extends AppController { $conditions = [ $conditions, $conditionNotArchived ]; //debug($conditions); exit; + $limit_max = 1000; + $lastResults = $this->Materiels->find('all', [ 'conditions' => $conditions, - 'contain' => ['Categories', 'Fournisseurs', 'Organismes', 'Projets'] - ])->limit(1000); + 'contain' => ['Categories', 'Fournisseurs', 'Organismes', 'Projets', 'Users'] + ])->limit($limit_max); $this->paginate = [ - 'maxLimit' => 1000, - 'limit' => 1000 + 'maxLimit' => $limit_max, + 'limit' => $limit_max ]; //debug($lastResults); exit; $_results = $this->paginate($lastResults); @@ -3206,7 +3208,7 @@ class MaterielsController extends AppController { } */ $res = $this->Materiels->find() - ->limit(1000) + ->limit($limit_max) // (EP) Attention, si on ajoute un "->contain", on devra utiliser 'Materiels.id' et non pas 'id' tout seul (ci-dessous) ->contain(['Categories', 'Fournisseurs', 'Organismes']); //->firstOrFail(); @@ -3221,8 +3223,8 @@ class MaterielsController extends AppController { ]); } $this->paginate = [ - 'maxLimit' => 1000, - 'limit' => 1000 + 'maxLimit' => $limit_max, + 'limit' => $limit_max ]; $_results = $this->paginate($res); $this->set(compact('_results')); @@ -3341,7 +3343,7 @@ class MaterielsController extends AppController { * Optional parameter "what:value" may be passed when calling this action, and is read from $this->getAttribute('params')['named']['what'] * ex : materiels/export/what:toValidate */ - public function export($materiels_list = null) + public function export($param = null) { function getElementFromList($listName, $materiel, $fkName) { @@ -3457,10 +3459,10 @@ class MaterielsController extends AppController { // CAS 2 - EXPORT liste courante // (cette fonction export() a été appelée par index()) //else if ($this->request->getData('exportcurrent') !== null) { - else if ($materiels_list) { + else if (is_array($param) && len($param)>0) { $CAS = 2; $this->myDebug("IN exportCurrent"); - $materiels = $materiels_list; + $materiels = $param; //debug($materiels->toArray()); exit; } // CAS 2 @@ -3507,20 +3509,26 @@ class MaterielsController extends AppController { } $this->myDebug("what is " . $what); $this->myDebug("statut is " . $status); - + } + // CAS 4 - Export du résultat de Recherche (find) - } else if (isset($this->request->getAttribute('params')['pass'][0])) { + else if ( + $param == 'search' + // C'est la meme chose que ci-dessus, mais bon... + && isset($this->request->getAttribute('params')['pass'][0]) + && $this->request->getAttribute('params')['pass'][0] == 'search' + ) { $CAS = 4; $this->myDebug("RECHERCHE"); $what = $this->request->getAttribute('params')['pass'][0]; - - if ($what == 'search') { - $materiels = $this->request->getSession()->read("result"); - } - + //if ($what == 'search') { + $materiels = $this->request->getSession()->read("result"); + //} + } + // CAS 5 (???) - Tous les matériels (sauf ARCHIVED) - } else { + else { $CAS = 5; $this->myDebug("OTHER CASE 4"); /* @@ -3555,6 +3563,7 @@ class MaterielsController extends AppController { // NOW, CREATE THE CSV file from $materiels + //debug($materiels[0]);exit; if ($CAS == 4) // Tableau de materiels, chaque materiel étant un objet query $this->myDebug("Nb matos = " . count($materiels)); -- libgit2 0.21.2