mirror of https://gitlab.com/pamhyr/pamhyr2
River: Fix node and edges artefact deletions at data saves.
parent
770bb5f96f
commit
4790b9c071
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from tools import flatten
|
||||
from tools import flatten, logger_exception
|
||||
|
||||
from Model.Tools.PamhyrDB import SQLSubModel
|
||||
|
||||
|
|
@ -326,6 +326,8 @@ class River(Graph, SQLSubModel):
|
|||
return new
|
||||
|
||||
def _db_save(self, execute, data=None):
|
||||
self._db_save_delete_artefact(execute, data)
|
||||
|
||||
objs = (self._nodes + self._edges)
|
||||
objs.append(self._boundary_condition)
|
||||
objs.append(self._initial_conditions)
|
||||
|
|
@ -341,6 +343,32 @@ class River(Graph, SQLSubModel):
|
|||
self._save_submodel(execute, objs, data)
|
||||
return True
|
||||
|
||||
def _db_save_delete_artefact(self, execute, data=None):
|
||||
self._db_save_delete_artefact_where_not_id(
|
||||
execute, data,
|
||||
"river_node", self._nodes
|
||||
)
|
||||
self._db_save_delete_artefact_where_not_id(
|
||||
execute, data,
|
||||
"river_reach", self._edges
|
||||
|
||||
)
|
||||
|
||||
def _db_save_delete_artefact_where_not_id(self, execute, data,
|
||||
table:str, els:list):
|
||||
try:
|
||||
execute(
|
||||
f"DELETE FROM {table} " +
|
||||
"WHERE " +
|
||||
" OR ".join(
|
||||
map(
|
||||
lambda n: f"( id <> {n.id} )", els
|
||||
)
|
||||
)
|
||||
)
|
||||
except Exception as e:
|
||||
logger_exception(e)
|
||||
|
||||
@property
|
||||
def boundary_condition(self):
|
||||
return self._boundary_condition
|
||||
|
|
|
|||
Loading…
Reference in New Issue