diff --git a/src/Model/Network/Graph.py b/src/Model/Network/Graph.py index 0f432495d4635640db1b6fc534ae00ef121fcb79..e2d549fbf6a8a922ff5b8a360ecbe3f5330c21ba 100644 --- a/src/Model/Network/Graph.py +++ b/src/Model/Network/Graph.py @@ -29,6 +29,14 @@ class Graph(object): def edges(self): return self._edges + def enable_edges(self): + return list( + filter( + lambda e: e.is_enable(), + self._edges + ) + ) + def edges_names(self): return list(map(lambda e: e.name, self._edges)) @@ -38,6 +46,13 @@ class Graph(object): def edges_counts(self): return len(self._edges) + def enable_edges_counts(self): + return reduce( + lambda acc, e: acc + 1 if e.is_enable() else acc, + self._edges, + 0 + ) + def is_node_exists(self, node_name): return reduce( lambda acc, n: (acc or (n.name == node_name)), diff --git a/src/Model/River.py b/src/Model/River.py index 9f5505ade0f43199e4b82ec0244969760846207d..cbc86f196ca7696af4d50d9ea0fc36700e2d5357 100644 --- a/src/Model/River.py +++ b/src/Model/River.py @@ -336,9 +336,16 @@ class River(Graph, SQLSubModel): return self._parameters[solver] def has_current_reach(self): + if self.enable_edges_counts() == 1: + return True + return self._current_reach is not None def current_reach(self): + ee = self.enable_edges() + if len(ee) == 1: + return ee[0] + return self._current_reach def set_current_reach(self, reach):