Model: Switch SedimentLayerList to PamhyrModelList.

mesh
Pierre-Antoine Rouby 2023-09-11 11:06:54 +02:00
parent 460683703e
commit 3aea790829
2 changed files with 6 additions and 66 deletions

View File

@ -4,33 +4,17 @@ from tools import trace, timer
from Model.DB import SQLSubModel from Model.DB import SQLSubModel
from Model.Except import NotImplementedMethodeError from Model.Except import NotImplementedMethodeError
from Model.Tools.PamhyrList import PamhyrModelList
from Model.SedimentLayer.SedimentLayer import SedimentLayer from Model.SedimentLayer.SedimentLayer import SedimentLayer
class SedimentLayerList(SQLSubModel): class SedimentLayerList(PamhyrModelList):
_sub_classes = [SedimentLayer] _sub_classes = [SedimentLayer]
def __init__(self, status = None):
super(SedimentLayerList, self).__init__()
self._status = status
self._sl = []
def __len__(self):
return len(self._sl)
@classmethod
def _sql_create(cls, execute):
return cls._create_submodel(execute)
@classmethod
def _sql_update(cls, execute, version):
return cls._update_submodel(execute, version)
@classmethod @classmethod
def _sql_load(cls, execute, data = None): def _sql_load(cls, execute, data = None):
new = cls(status = data["status"]) new = cls(status = data["status"])
new._sl = SedimentLayer._sql_load(execute, data) new._lst = SedimentLayer._sql_load(execute, data)
return new return new
@ -41,61 +25,17 @@ class SedimentLayerList(SQLSubModel):
execute("DELETE FROM sedimentary_layer") execute("DELETE FROM sedimentary_layer")
execute("DELETE FROM sedimentary_layer_layer") execute("DELETE FROM sedimentary_layer_layer")
for sl in self._sl: for sl in self._lst:
ok &= sl._sql_save(execute, data) ok &= sl._sql_save(execute, data)
return ok return ok
@property @property
def sediment_layers(self): def sediment_layers(self):
return self._sl.copy() return self.lst
def get(self, index):
return self._sl[index]
def set(self, index, new):
self._sl[index] = new
self._status.modified()
def insert(self, index, new):
self._sl.insert(index, new)
self._status.modified()
def new(self, index): def new(self, index):
n = SedimentLayer(status = self._status) n = SedimentLayer(status = self._status)
self.insert(index, n) self.insert(index, n)
self._status.modified() self._status.modified()
return n return n
def delete(self, els):
for el in els:
self._sl.remove(el)
self._status.modified()
def delete_i(self, indexes):
els = list(
map(
lambda x: x[1],
filter(
lambda x: x[0] in indexes,
enumerate(self._sl)
)
)
)
self.delete(els)
def move_up(self, index):
if index < len(self._sl):
next = index - 1
l = self._sl
l[index], l[next] = l[next], l[index]
self._status.modified()
def move_down(self, index):
if index >= 0:
prev = index + 1
l = self._sl
l[index], l[prev] = l[prev], l[index]
self._status.modified()

View File

@ -45,7 +45,7 @@ class PamhyrModelList(SQLSubModel):
@classmethod @classmethod
def _sql_update(cls, execute, version): def _sql_update(cls, execute, version):
raise NotImplementedMethodeError(cls, cls._sql_update) return cls._update_submodel(execute, version)
@classmethod @classmethod
def _sql_load(cls, execute, data = None): def _sql_load(cls, execute, data = None):