diff --git a/CHANGES.txt b/CHANGES.txt
index 1871273..02008e8 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -13,7 +13,9 @@ CHANGEMENTS
 
 
 -------
-30/09/2020 NEWS#4 (v4.103.18-3.7.9) :
+02/10/2020 NEWS#4 (v4.103.25-3.7.9) :
+
+Nouveau bouton "Exporter la liste courante" sur la vue liste des matériels (materiels/index) 
 
 Remaniement complet du système de notification :
 	=> toute action (création, modification, suppression...) faite sur toute entité (Materiel, Document, Suivi, Emprunt, ...) 
@@ -119,8 +121,9 @@ Outre ces changements, voici d'autres changements importants :
 
 
 -------
-02/10/2020	v4.103.24-3.7.9 (EP)
-	- (i) Bugfix nom du serveur dans les mails
+02/10/2020	v4.103.25-3.7.9 (EP)
+	- (e) Nouveau bouton "Exporter la liste courante" sur la vue liste des matériels (materiels/index) 
+	- (b) Bugfix nom du serveur dans les mails
 
 -------
 01/10/2020	v4.103.23-3.7.9 (EP)
diff --git a/README.md b/README.md
index 213f609..0cb37d3 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.103.24-3.7.9
+Version: 4.103.25-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 81bc94c..f849939 100755
--- a/src/Controller/MaterielsController.php
+++ b/src/Controller/MaterielsController.php
@@ -873,7 +873,9 @@ class MaterielsController extends AppController {
         $this->myDebug("step 3: MaterielsController.index()");
         
         $conditions = [];
-        $contain = [];
+        //$contain = [];
+        $contain = ['Fournisseurs', 'Categories', 'Organismes', 'Projets', 'Users'];
+        
         
         // - FILTRE Statut ? (status=CREATED, status=VALIDATED, ...)
         // (EP 202007 OLD way pour gérer les statuts : /materiels/index/VALIDATED)
@@ -995,10 +997,6 @@ class MaterielsController extends AppController {
         
         $config = $this->confLabinvent;
 
-        $export_current = $this->request->getQuery('exportcurrent');
-        if ($export_current == 1) {
-            debug("export current list");
-        }
         
         /*
          * - FILTRE age (tranche d'âge) ?
@@ -1047,6 +1045,7 @@ class MaterielsController extends AppController {
         }
         */
         
+        
         // - FILTRE Domaine ?
         $domaine_id = $this->request->getQuery('domaine');
         // Par défaut, TOUS les domaines (id=0)
@@ -1059,6 +1058,7 @@ class MaterielsController extends AppController {
             //$conditions['sur_categorie_id'] = $domain_id;
         //debug($conditions); 
 
+            
         // - FILTRE Projet ?
         $projet_id = $this->request->getQuery('projet');
         // Par défaut, TOUS les domaines (id=0)
@@ -1066,12 +1066,14 @@ class MaterielsController extends AppController {
         // Si $domain_id==0 on ne fait rien (car on prend TOUS les domaines)
         if ($projet_id > 0) $conditions['Materiels.projet_id'] = $projet_id;
                 
-        // - FILTRE Nb lignes par page ?
+        
+        // - FILTRE (pas vraiment un filtre) Nb lignes par page ?
         //$limit = $this->request->getQuery('aff');
         $limit = $this->request->getQuery('nblines');
         // Par défaut, nb lignes demandées dans config
         if ($limit===null) $limit = $config['aff_par_defaut'];
         
+        /* SERT À RIEN
         $this->paginate = [
             'limit' => $limit,
             'maxLimit' => 1000,
@@ -1088,6 +1090,7 @@ class MaterielsController extends AppController {
                 'Materiels.numero_laboratoire' => 'desc'
             ]
         ];
+        */
 
         
         /*
@@ -1147,9 +1150,10 @@ class MaterielsController extends AppController {
                 ]
             ];
             */
-            $contain = ['Fournisseurs', 'Categories', 'Organismes', 'Projets'];
+            //$contain = ['Fournisseurs', 'Categories', 'Organismes', 'Projets'];
+            //$contain = ['Fournisseurs', 'Categories', 'Organismes', 'Projets', 'Users'];
             //debug($conditions);
-        }
+        } // searchfor
         
         
         // EXEC REQUETE SQL find()
@@ -1184,6 +1188,19 @@ class MaterielsController extends AppController {
             debug("Mauvais format de requete SQL (1), Exception PDO générée !");
             exit;
         }
+        
+        
+        // EXPORT DE LA LISTE EN COURS (selon le filtrage en cours)
+        // Attention, l'appel à export() terminera l'action par un EXIT
+        // Donc, cette action stoppe le processus en cours, et la vue ne sera pas réaffichée
+        $export_current = $this->request->getQuery('exportcurrent');
+        if ($export_current == 1) {
+            //debug("export current list");
+            $this->export($materiels);
+        }
+        // STOP
+        
+        
         //debug("age=$age, nbMateriels = $nbMateriels");
         $this->set(compact('nbMateriels'));
                 
@@ -1225,7 +1242,14 @@ class MaterielsController extends AppController {
         );
         */
         try {
-            $materiels = $this->paginate($materiels);
+            //$materiels = $this->paginate($materiels);
+            $materiels = $this->paginate($materiels, [
+                    'limit' => $limit,
+                    'maxLimit' => 1000,
+                    'order' => [
+                        'Materiels.numero_laboratoire' => 'desc'
+                    ]
+            ]);
         } catch (\PDOException $e) {
             debug("Mauvais format de requete SQL (2), Exception PDO générée !");
             exit;
@@ -1303,6 +1327,8 @@ class MaterielsController extends AppController {
         */
     } // index()
 
+    
+    
     //@Override
     // Pour le MaterielsController, le materiel associé est simplement lui-même :-)
     protected function getRelatedMaterielForId($id, $action=null) {
@@ -3315,7 +3341,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()
+    public function export($materiels_list = null)
     {
         
         function getElementFromList($listName, $materiel, $fkName) {
@@ -3428,47 +3454,17 @@ class MaterielsController extends AppController {
 
         } 
         
-        /*
-        // CAS 2 - EXPORT liste courante
-        else if ($this->request->getData('exportCurrent') !== null) {
-            
+        // 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) {
             $CAS = 2;
             $this->myDebug("IN exportCurrent");
-            $what = $this->request->getData('what');
-            //debug($what);
-            
-            $selectedMateriels = [];
-            $i = 0;
-            //$data = $this->request->getData();
-            $data = $this->request->getData();
-            //debug($data);exit;
-            foreach ($data as $val) {
-                if ($val == 1) {
-                    $selectedMateriels[$i] = key($data);
-                    $i ++;
-                }
-                next($data);
-            }
-            
-            $this->myDebug($selectedMateriels);
-            
-            //if (sizeof($selectedMateriels) > 0) {
-            if (! empty($selectedMateriels)) {
-                //$materielsTable = TableRegistry::getTableLocator()->get('Materiels');
-                //$materiels = $materielsTable->find()
-                $materiels = $this->Materiels->find()
-                    ->contain($contain)
-                    ->where(['Materiels.id' => $selectedMateriels[0]]);
-                for ($j = 0; $j < sizeof($selectedMateriels); $j ++)
-                    $materiels->orWhere( ['Materiels.id' => $selectedMateriels[$j]] );
-                    $materiels->order($order);
-            }
-            $materiels = $this->Materiels->find()
-            ->contain($contain)
-            ->where(['Materiels.id' => 12003]);
-        }
-        */
+            $materiels = $materiels_list;
+            //debug($materiels->toArray()); exit;
+        } // CAS 2
                 
+        
         // CAS 3 - EXPORT TOUS les matériels de la BD
         else if ($this->request->getData('exportAll') !== null) {
             $CAS = 3;
@@ -3619,12 +3615,17 @@ class MaterielsController extends AppController {
             "Email responsable"
         ];
         
-        ini_set('max_execution_time', 600);
+        
+        // DEBUG = true => n'envoie pas le fichier, l'affiche seulement
+        $DEBUG=false;
+        //$DEBUG=true;
+        
+        !$DEBUG && ini_set('max_execution_time', 600);
         
         $filename = 'export_' . date("Y-m-d") . '.csv';
-        $csv_file = fopen('php://output', 'w');
+        !$DEBUG && $csv_file = fopen('php://output', 'w');
         
-        $this->response->header([
+        !$DEBUG && $this->response->header([
             // CRAL:
             //'Content-Type: text/csv'
             'Content-Type: application/csv',
@@ -3632,10 +3633,10 @@ class MaterielsController extends AppController {
             //"Content-disposition: attachment; filename=Demande_bureaux_" . date("Ymd").".csv");
             'Content-Disposition: attachment; filename="' . $filename . '"'
         ]);
-        $this->response->sendHeaders();
+        !$DEBUG && $this->response->sendHeaders();
         
         // 1) Write HEADER row        
-        fputcsv($csv_file, $header_row, ';');
+        !$DEBUG && fputcsv($csv_file, $header_row, ';');
         
         // 2) Write DATA rows, 1 by 1
         foreach ($materiels as $result) {
@@ -3759,10 +3760,13 @@ class MaterielsController extends AppController {
             array_push($row, $result->nom_responsable);
             array_push($row, $result->email_responsable);
             
-            fputcsv($csv_file, $row, ';', '"');
+            $DEBUG && debug($row); 
+            //$DEBUG && exit;
+            
+            !$DEBUG && fputcsv($csv_file, $row, ';', '"');
         }
         sleep(3);
-        fclose($csv_file);
+        !$DEBUG && fclose($csv_file);
         
         exit();
         // Sans le exit() ça ne fonctionne pas pour des petites listes, et dans tout les cas une ligne en javascript est écrite si il n'y a pas exit()
diff --git a/src/Template/Materiels/index.ctp b/src/Template/Materiels/index.ctp
index d14e13d..5f2fd31 100644
--- a/src/Template/Materiels/index.ctp
+++ b/src/Template/Materiels/index.ctp
@@ -162,30 +162,25 @@ $displaySearchField = function($params, $searchfor, $html, $form) {
 
 
 
-$displayExportCurrentButton = function($SELECTED_STATUS, $params, $nbMateriels, $html) {
-    ?>
-    <div class="actions" style="width: 100%; float: none; padding: 0 0;">
-    <?php
-    echo $html->link(''.' '.'exportCurrent', [
+$displayExportCurrentButton = function($params, $html) {
+    echo $html->link(
+        'Exporter toute la liste courante (filtrage en cours)',
+        // URL
+        [
             //'action' => 'index',
-            //'CREATED',
-            //'?' => ['height' => 400, 'width' => 500]
-            //'?' => $params + ['status'=>'CREATED']
-            //'?' => $params
-            '?' => array_merge($params, ['exportcurrent'=>1])
+            '?' => array_merge($params, ['exportcurrent'=>1]),
             //'?' => null
-            //[$args],
-            //"http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']
-    ], [
-        'title' => 'Exporter la liste courante',
-        'style' => 'margin-right: 5px',
-        'escape' => false
-    ]);
-    
-    echo '</p>';
-    
-    echo "</div>";
-
+            //'_full' => true // pour des URLs absolues
+        ], 
+        // Style et tooltip
+        [
+            //'class' => 'button',
+            'class' => "btn btn-outline-success btn-default",
+            'title' => 'Exporter la liste courante (avec les paramètres sélectionnés en cours)',
+            //'style' => 'margin-right: 0px',
+            //'escape' => false
+        ]
+    );
 }; // displayExportCurrentButton()
 
 
@@ -499,7 +494,11 @@ $displayFilter = function($filter_name, $filter_label,// 'projet'
 
 
 
-$displayActionButtonsForSelectedOrAllElements = function($form, $SELECTED_STATUS, $USER_IS_RESPONSABLE, $USER_IS_ADMIN_OR_MORE, $USER_IS_SUPERADMIN) {
+$displayActionButtonsForSelectedOrAllElements = function(
+    $form, 
+    $SELECTED_STATUS, 
+    $USER_IS_RESPONSABLE, $USER_IS_ADMIN_OR_MORE, $USER_IS_SUPERADMIN, 
+    $displayExportCurrentButton, $params) {
 
     //if (isset($SELECTED_STATUS)) {
     if ($SELECTED_STATUS) {
@@ -544,8 +543,8 @@ $displayActionButtonsForSelectedOrAllElements = function($form, $SELECTED_STATUS
         //    'style' => 'margin: 0px;'
         //]);
         
-        //echo $form->button('Exporter la liste actuelle', ['class'=>'btn btn-outline-success', 'type'=>'submit', 'name' => 'exportCurrent', 'id' => 'exportCurrent', 'style' => 'margin: 0px;']);
-        //echo "<br /><br />";
+        $displayExportCurrentButton($params, $this->Html);
+        echo '<br/><br/>';
         
         echo $form->button('Exporter la liste complète (tous les matériels)', ['class'=>'btn btn-outline-success', 'type'=>'submit', 'name' => 'exportAll', 'id' => 'exportAll', 'style' => 'margin: 0px;']);
     }
@@ -767,7 +766,7 @@ echo $this->Html->link('<i class="icon-plus"></i> Nouveau Matériel', [
     'escape' => false
 ]);
 echo '</p>';*/
-if ($USER_IS_ADMIN_OR_MORE) $displayExportCurrentButton($SELECTED_STATUS, $params, $nbMateriels, $this->Html);
+//if ($USER_IS_ADMIN_OR_MORE) $displayExportCurrentButton($SELECTED_STATUS, $params, $nbMateriels, $this->Html);
 
 if ($USER_IS_ADMIN_OR_MORE) $displayStatusButtons($SELECTED_STATUS, $params, $nbMateriels, $this->Html);
 //</div>
@@ -934,7 +933,12 @@ if ($SELECTED_STATUS) echo $this->Form->hidden('what', ['value'=>$SELECTED_STATU
     
     $displayColorLegend();
     
-    $displayActionButtonsForSelectedOrAllElements($this->Form, $SELECTED_STATUS, $USER_IS_RESPONSABLE, $USER_IS_ADMIN_OR_MORE, $USER_IS_SUPERADMIN);
+    $displayActionButtonsForSelectedOrAllElements(
+        $this->Form, 
+        $SELECTED_STATUS, 
+        $USER_IS_RESPONSABLE, $USER_IS_ADMIN_OR_MORE, $USER_IS_SUPERADMIN,
+        $displayExportCurrentButton, $params, $nbMateriels
+    );
     
 	echo $this->element('pagination_with_first_and_last'); 
     
diff --git a/webroot/css/inventirap.css b/webroot/css/inventirap.css
index 7d08ab8..d551974 100755
--- a/webroot/css/inventirap.css
+++ b/webroot/css/inventirap.css
@@ -18,6 +18,19 @@ a {
 	text-decoration: underline;
 	font-weight: bold;
 }
+
+/*
+(EP202010) 
+Ce style, c'est uniquement pour le "faux" bouton (c'est un lien) "Exporter toute la liste courante" de la vue 'materiels/index'
+Attention :
+a .btn => signifie 'a' OU 'la classe btn'
+c'est différent de
+a.btn => signifie 'a' ET 'la classe btn'
+*/
+a.btn {
+	text-decoration: none;
+}
+
 a:hover {
 	color: #367889;
 	text-decoration:none;
--
libgit2 0.21.2