From d871bbfc3bb0ca61205e0ad8a22a8dc2081cf667 Mon Sep 17 00:00:00 2001
From: Theophile Terraz <theophile.terraz@inrae.fr>
Date: Tue, 30 Apr 2024 14:18:12 +0200
Subject: [PATCH] debug enable hydraulic structures

---
 src/Meshing/Mage.py                           |  2 +-
 src/Solver/Mage.py                            | 38 ++++++++++---------
 .../BasicHydraulicStructures/Window.py        | 15 ++++----
 src/View/HydraulicStructures/Window.py        | 14 ++++---
 4 files changed, 38 insertions(+), 31 deletions(-)

diff --git a/src/Meshing/Mage.py b/src/Meshing/Mage.py
index cd4e577f..8cb59ba8 100644
--- a/src/Meshing/Mage.py
+++ b/src/Meshing/Mage.py
@@ -302,7 +302,7 @@ class MeshingWithMageMailleurTT(AMeshingTool):
 
         with tempfile.TemporaryDirectory() as tmp:
             logger.debug(f"temp file: {tmp}")
-            st_file = self.export_reach_to_st(reach, tmp)
+            st_file = self.export_reach_to_st(reach, "tmp")
             m_file = st_file.rsplit(".ST", 1)[0] + ".M"
 
             os.sync()
diff --git a/src/Solver/Mage.py b/src/Solver/Mage.py
index f8b664fd..bcb36a88 100644
--- a/src/Solver/Mage.py
+++ b/src/Solver/Mage.py
@@ -495,6 +495,9 @@ class Mage(CommandLineSolver):
                 if not hs.input_reach.is_enable():
                     continue
 
+                if not hs.enabled:
+                    continue
+
                 if hs.input_kp is None:
                     continue
 
@@ -510,25 +513,26 @@ class Mage(CommandLineSolver):
 
     def _export_SIN_bhs(self, study, sin_dict, hs, f):
         for bhs in hs.basic_structures:
-            reach_id = study.river.get_edge_id(hs.input_reach) + 1
-            param_str = ' '.join(
-                [
-                    f'{p:>10.3f}'
-                    for p in self._export_SIN_parameters(bhs)
-                ]
-            )
+            if bhs.enabled:
+                reach_id = study.river.get_edge_id(hs.input_reach) + 1
+                param_str = ' '.join(
+                    [
+                        f'{p:>10.3f}'
+                        for p in self._export_SIN_parameters(bhs)
+                    ]
+                )
 
-            name = bhs.name
-            if name == "":
-                name = f"HS_{bhs.id:>3}".replace(" ", "0")
-            else:
-                name = name.replace(" ", "_")
+                name = bhs.name
+                if name == "":
+                    name = f"HS_{bhs.id:>3}".replace(" ", "0")
+                else:
+                    name = name.replace(" ", "_")
 
-            f.write(
-                f"{sin_dict[bhs._type]} " +
-                f"{reach_id} {float(hs.input_kp):>12.3f} " +
-                f"{param_str} {name}\n"
-            )
+                f.write(
+                    f"{sin_dict[bhs._type]} " +
+                    f"{reach_id} {float(hs.input_kp):>12.3f} " +
+                    f"{param_str} {name}\n"
+                )
 
     def _export_SIN_parameters(self, bhs):
         res = [9999.999] * 5
diff --git a/src/View/HydraulicStructures/BasicHydraulicStructures/Window.py b/src/View/HydraulicStructures/BasicHydraulicStructures/Window.py
index 93ef8a37..9a39f49c 100644
--- a/src/View/HydraulicStructures/BasicHydraulicStructures/Window.py
+++ b/src/View/HydraulicStructures/BasicHydraulicStructures/Window.py
@@ -252,13 +252,14 @@ class BasicHydraulicStructuresWindow(PamhyrWindow):
             self._checkbox.setChecked(self._hs.basic_structure(row).enabled)
 
     def _set_basic_structure_state(self):
-        row = self.index_selected_row()
-
-        if row is not None:
-            self._table.enabled(
-                row,
-                self._checkbox.isChecked()
-            )
+        rows = self.index_selected_rows()
+        if len(rows) != 0:
+            for row in rows:
+                if row is not None:
+                    self._table.enabled(
+                        row,
+                        self._checkbox.isChecked()
+                    )
 
     def update(self):
         self._set_checkbox_state()
diff --git a/src/View/HydraulicStructures/Window.py b/src/View/HydraulicStructures/Window.py
index ff290d7a..1c6af72c 100644
--- a/src/View/HydraulicStructures/Window.py
+++ b/src/View/HydraulicStructures/Window.py
@@ -262,12 +262,14 @@ class HydraulicStructuresWindow(PamhyrWindow):
             self._checkbox.setChecked(self._hs_lst.get(row).enabled)
 
     def _set_structure_state(self):
-        row = self.index_selected_row()
-        if row is not None:
-            self._table.enabled(
-                row,
-                self._checkbox.isChecked()
-            )
+        rows = self.index_selected_rows()
+        if len(rows) != 0:
+            for row in rows:
+                if row is not None:
+                    self._table.enabled(
+                        row,
+                        self._checkbox.isChecked()
+                    )
 
     def update(self):
         self._set_checkbox_state()
-- 
GitLab