diff --git a/src/Model/HydraulicStructures/HydraulicStructures.py b/src/Model/HydraulicStructures/HydraulicStructures.py index e8eb08c3..f1865d4d 100644 --- a/src/Model/HydraulicStructures/HydraulicStructures.py +++ b/src/Model/HydraulicStructures/HydraulicStructures.py @@ -274,6 +274,9 @@ class HydraulicStructure(SQLSubModel): return hs def _db_save(self, execute, data=None): + if not self.must_be_saved(): + return True + execute( "DELETE FROM hydraulic_structures " + f"WHERE pamhyr_id = {self.pamhyr_id} " + diff --git a/src/Model/InitialConditions/InitialConditions.py b/src/Model/InitialConditions/InitialConditions.py index a5a87d1f..026085a0 100644 --- a/src/Model/InitialConditions/InitialConditions.py +++ b/src/Model/InitialConditions/InitialConditions.py @@ -225,6 +225,8 @@ class Data(SQLSubModel): return new def _db_save(self, execute, data=None): + if not self.must_be_saved(): + return True ind = data["ind"] execute( diff --git a/src/Model/Pollutants/Pollutants.py b/src/Model/Pollutants/Pollutants.py index 51872f1d..53799c85 100644 --- a/src/Model/Pollutants/Pollutants.py +++ b/src/Model/Pollutants/Pollutants.py @@ -400,7 +400,7 @@ class Pollutants(SQLSubModel): return new table = execute( - "SELECT pamhyr_id, deleted, name FROM pollutants " + + "SELECT pamhyr_id, deleted, name, scenario FROM pollutants " + f"WHERE scenario = {scenario.id} " + f"AND pamhyr_id NOT IN ({', '.join(map(str, loaded))})" ) @@ -412,10 +412,12 @@ class Pollutants(SQLSubModel): pid = next(it) deleted = (next(it) == 1) name = next(it) + owner_scenario = next(it) new_pollutant = cls( id=pid, name=name, - status=status + status=status, + owner_scenario=owner_scenario ) if deleted: new_pollutant.set_as_deleted() diff --git a/src/Model/River.py b/src/Model/River.py index ba5f5e8a..acda6e22 100644 --- a/src/Model/River.py +++ b/src/Model/River.py @@ -180,6 +180,9 @@ class RiverNode(Node): return nodes def _db_save(self, execute, data=None): + if not self.must_be_saved(): + return True + execute( "INSERT OR REPLACE INTO river_node(" + "pamhyr_id, deleted, name, x, y, scenario" + @@ -377,6 +380,9 @@ class RiverReach(Edge): return reachs def _db_save(self, execute, data=None): + if not self.must_be_saved(): + return True + execute( "INSERT OR REPLACE INTO " + "river_reach(" + @@ -386,7 +392,7 @@ class RiverReach(Edge): "VALUES (" + f"{self.pamhyr_id}, {self._db_format(self.is_deleted())}, " + f"'{self._db_format(self._name)}', " + - f"{self._db_format(self.is_enable())}," + f"{self._db_format(self.is_enable())}," + f"{self.node1.pamhyr_id}, {self.node2.pamhyr_id}, " + f"{self._status.scenario_id}" + ")" diff --git a/src/Model/Tools/PamhyrDB.py b/src/Model/Tools/PamhyrDB.py index 9ca7257c..d1706f2c 100644 --- a/src/Model/Tools/PamhyrDB.py +++ b/src/Model/Tools/PamhyrDB.py @@ -203,7 +203,7 @@ class SQLSubModel(PamhyrID): if self._status is None: return - self._owner_scenario = self._status.scenario_id + # self._owner_scenario = self._status.scenario_id self._status.modified() def set_owner_scenario(self):