mirror of https://gitlab.com/pamhyr/pamhyr2
fix duplication of same objects in db with when saving a child scenario
parent
348417977d
commit
ccf3da114b
|
|
@ -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} " +
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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}" +
|
||||
")"
|
||||
|
|
|
|||
|
|
@ -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):
|
||||
|
|
|
|||
Loading…
Reference in New Issue