Compare commits

...

2 Commits

Author SHA1 Message Date
Pierre-Antoine 1e2a123693 Model: Tools: Prepare scenario duplication. 2025-09-02 17:20:09 +02:00
Pierre-Antoine 2916afb974 Model: Tools: Minor change. 2025-09-02 16:57:08 +02:00
4 changed files with 62 additions and 0 deletions

View File

@ -202,6 +202,23 @@ class SQLSubModel(PamhyrID):
self._owner_scenario = self._status.scenario_id
self._status.modified()
def set_owner_scenario_if(self, predicate):
"""Set study status the object owner_scenario to current
scenario if predicate(scenario_id) is true
Args:
predicate: Function predicate on owner_scenario id
Returns:
Nothing
"""
if self._status is None:
return
if predicate(self._owner_scenario):
self._owner_scenario = self._status.scenario_id
self._status.modified()
def is_deleted(self):
"""This object is deleted?

View File

@ -82,5 +82,20 @@ class PamhyrModelDict(SQLSubModel):
self.set(key, new)
return new
def rec_set_owner_scenario_if(self, predicate):
"""Set study status the object owner_scenario to current
scenario if predicate(scenario_id) is true
Args:
predicate: Function predicate on owner_scenario id
Returns:
Nothing
"""
self.set_owner_scenario_if(predicate)
for k in self._lst:
self._dict[key].set_owner_scenario_if(predicate)
def new(self, key):
raise NotImplementedMethodeError(self, self.new)

View File

@ -85,6 +85,21 @@ class PamhyrModelList(SQLSubModel):
if self._status is not None:
self._status.modified()
def rec_set_owner_scenario_if(self, predicate):
"""Set study status the object owner_scenario to current
scenario if predicate(scenario_id) is true
Args:
predicate: Function predicate on owner_scenario id
Returns:
Nothing
"""
self.set_owner_scenario_if(predicate)
for el in self._lst:
el.set_owner_scenario_if(predicate)
def new(self, index):
"""Create new elements and add it to list

View File

@ -90,6 +90,21 @@ class PamhyrModelList(SQLSubModel):
if self._status is not None:
self._status.modified()
def rec_set_owner_scenario_if(self, predicate):
"""Set study status the object owner_scenario to current
scenario if predicate(scenario_id) is true
Args:
predicate: Function predicate on owner_scenario id
Returns:
Nothing
"""
self.set_owner_scenario_if(predicate)
for el in self._lst:
el.set_owner_scenario_if(predicate)
def new(self, index):
"""Create new elements and add it to list