From 40cc18881564f33ad61053417fd7520d596c87f8 Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Rouby Date: Mon, 15 Sep 2025 14:13:24 +0200 Subject: [PATCH] SL: Fix save for scenario. --- src/Model/SedimentLayer/SedimentLayer.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/Model/SedimentLayer/SedimentLayer.py b/src/Model/SedimentLayer/SedimentLayer.py index 476f31ad..f20e99fa 100644 --- a/src/Model/SedimentLayer/SedimentLayer.py +++ b/src/Model/SedimentLayer/SedimentLayer.py @@ -40,6 +40,7 @@ class Layer(SQLSubModel): owner_scenario=owner_scenario ) + self._sl = sl self._name = name self._type = type @@ -58,6 +59,7 @@ class Layer(SQLSubModel): @name.setter def name(self, name): self._name = name + self.modified() @property def type(self): @@ -66,6 +68,7 @@ class Layer(SQLSubModel): @type.setter def type(self, type): self._type = type + self.modified() @property def height(self): @@ -74,6 +77,7 @@ class Layer(SQLSubModel): @height.setter def height(self, height): self._height = float(height) + self.modified() @property def d50(self): @@ -82,6 +86,7 @@ class Layer(SQLSubModel): @d50.setter def d50(self, d50): self._d50 = float(d50) + self.modified() @property def sigma(self): @@ -90,6 +95,7 @@ class Layer(SQLSubModel): @sigma.setter def sigma(self, sigma): self._sigma = float(sigma) + self.modified() @property def critical_constraint(self): @@ -98,6 +104,7 @@ class Layer(SQLSubModel): @critical_constraint.setter def critical_constraint(self, critical_constraint): self._critical_constraint = float(critical_constraint) + self.modified() @classmethod def _db_create(cls, execute, ext=""): @@ -199,7 +206,7 @@ class Layer(SQLSubModel): "SELECT pamhyr_id, deleted, name, type, height, " + "d50, sigma, critical_constraint, scenario " + "FROM sedimentary_layer_layer " + - f"WHERE sl = {sl} " + + f"WHERE sl = {sl.pamhyr_id} " + f"AND scenario = {scenario.id} " + f"AND pamhyr_id NOT IN ({', '.join(map(str, loaded))}) " + "ORDER BY ind ASC" @@ -263,6 +270,10 @@ class Layer(SQLSubModel): return True + def modified(self): + super(Layer, self).modified() + + self._sl.modified() class SedimentLayer(SQLSubModel): _sub_classes = [Layer] @@ -433,7 +444,7 @@ class SedimentLayer(SQLSubModel): if deleted: sl.set_as_deleted() - data["sl"] = sl.id + data["sl"] = sl sl._layers = Layer._db_load(execute, data) loaded.add(pid)