mirror of https://gitlab.com/pamhyr/pamhyr2
Scenario: Duplicate: Fix data traversal and duplicate method.
parent
9043b6e2a3
commit
303f6bb35b
|
|
@ -339,6 +339,16 @@ class ProfileXYZ(Profile, SQLSubModel):
|
|||
|
||||
return ok
|
||||
|
||||
def _data_traversal(self,
|
||||
predicate=lambda obj, data: True,
|
||||
modifier=lambda obj, data: None,
|
||||
data={}):
|
||||
if predicate(self, data):
|
||||
modifier(self, data)
|
||||
|
||||
for p in self._points:
|
||||
p._data_traversal(predicate, modifier, data)
|
||||
|
||||
@classmethod
|
||||
def from_data(cls, header, data):
|
||||
profile = None
|
||||
|
|
|
|||
|
|
@ -99,6 +99,13 @@ class Reach(SQLSubModel):
|
|||
|
||||
return ok
|
||||
|
||||
def _data_traversal(self,
|
||||
predicate=lambda obj, data: True,
|
||||
modifier=lambda obj, data: None,
|
||||
data={}):
|
||||
for p in self._profiles:
|
||||
p._data_traversal(predicate, modifier, data)
|
||||
|
||||
def profile(self, i):
|
||||
"""Returns profile at index i
|
||||
|
||||
|
|
|
|||
|
|
@ -439,7 +439,6 @@ class LateralContribution(SQLSubModel):
|
|||
|
||||
return True
|
||||
|
||||
|
||||
def _data_traversal(self,
|
||||
predicate=lambda obj, data: True,
|
||||
modifier=lambda obj, data: None,
|
||||
|
|
|
|||
|
|
@ -190,6 +190,13 @@ class RiverNode(Node):
|
|||
|
||||
return True
|
||||
|
||||
def _data_traversal(self,
|
||||
predicate=lambda obj, data: True,
|
||||
modifier=lambda obj, data: None,
|
||||
data={}):
|
||||
if predicate(self, data):
|
||||
modifier(self, data)
|
||||
|
||||
def is_deleted(self):
|
||||
return self._deleted
|
||||
|
||||
|
|
@ -387,6 +394,16 @@ class RiverReach(Edge):
|
|||
objs = [self._reach, self._frictions]
|
||||
return self._save_submodel(execute, objs, data)
|
||||
|
||||
def _data_traversal(self,
|
||||
predicate=lambda obj, data: True,
|
||||
modifier=lambda obj, data: None,
|
||||
data={}):
|
||||
if predicate(self, data):
|
||||
modifier(self, data)
|
||||
|
||||
self._reach._data_traversal(predicate, modifier, data)
|
||||
self._frictions._data_traversal(predicate, modifier, data)
|
||||
|
||||
def is_deleted(self):
|
||||
return self._deleted
|
||||
|
||||
|
|
|
|||
|
|
@ -514,13 +514,12 @@ class Study(SQLModel):
|
|||
|
||||
new.name = self.status.scenario.name + " (copy)"
|
||||
|
||||
self.status.scenario = new
|
||||
self.river._data_traversal(
|
||||
predicate=lambda obj, data: obj._owner_scenario == source,
|
||||
modifier=lambda obj, data: obj.set_owner_scenario(),
|
||||
data={}
|
||||
)
|
||||
|
||||
self.status.scenario = new
|
||||
|
||||
self.status.set_as_editable()
|
||||
return new
|
||||
|
|
|
|||
Loading…
Reference in New Issue