diff --git a/src/Model/InitialConditions/InitialConditions.py b/src/Model/InitialConditions/InitialConditions.py index c81f940c119b0c5ad1958513f9c56e642d99a1ec..439445fa3887ad85087d59f7efd19a88576d2a95 100644 --- a/src/Model/InitialConditions/InitialConditions.py +++ b/src/Model/InitialConditions/InitialConditions.py @@ -395,6 +395,7 @@ class InitialConditions(SQLSubModel): self._data.append(new) previous_elevation = elevation + self._generate_resort_data(profiles) def generate_discharge(self, discharge: float): self._data = [] @@ -438,3 +439,15 @@ class InitialConditions(SQLSubModel): previous_elevation = elevation self._data.append(new) + + self._generate_resort_data(profiles) + + def _generate_resort_data(self, profiles): + is_reverse = False + if profiles[0].kp > profiles[-1].kp: + is_reverse = True + + self._data.sort( + reverse=not is_reverse, + key=lambda d: d['kp'] + ) diff --git a/src/View/Reservoir/Table.py b/src/View/Reservoir/Table.py index 66cdae82109f2aa212ea68b249ad310fb6e984be..143620504a520800a64faf852b3aac8bac9d8703 100644 --- a/src/View/Reservoir/Table.py +++ b/src/View/Reservoir/Table.py @@ -56,9 +56,22 @@ class ComboBoxDelegate(QItemDelegate): def createEditor(self, parent, option, index): self.editor = QComboBox(parent) + nodes = list( + map( + lambda n: n.name, + filter( + lambda n: not ( + self._data.is_upstream_node(n) + or self._data.is_downstream_node(n) + ), + self._data.nodes() + ) + ) + ) + self.editor.addItems( [_translate("Reservoir", "Not associated")] + - self._data.nodes_names() + nodes ) self.editor.setCurrentText(index.data(Qt.DisplayRole))