From 716d0af96fa0aca205fdc1d5fc0685b98d5df34a Mon Sep 17 00:00:00 2001 From: Youcef AOUAD <youcef.aouad@inrae.fr> Date: Thu, 13 Jun 2024 14:35:40 +0200 Subject: [PATCH] INI GOOD --- .../InitialConditionsAdisTS.py | 19 +++++------- .../InitialConditionsAdisTSSpec.py | 20 ++++++++++++- src/View/InitialConditionsAdisTS/Table.py | 6 ++-- .../InitialConditionsAdisTS/UndoCommand.py | 11 ++++--- src/View/InitialConditionsAdisTS/Window.py | 27 +++++++++--------- tests_cases/Enlargement/Enlargement.pamhyr | Bin 192512 -> 192512 bytes 6 files changed, 50 insertions(+), 33 deletions(-) diff --git a/src/Model/InitialConditionsAdisTS/InitialConditionsAdisTS.py b/src/Model/InitialConditionsAdisTS/InitialConditionsAdisTS.py index f8122223..b8f3b7d0 100644 --- a/src/Model/InitialConditionsAdisTS/InitialConditionsAdisTS.py +++ b/src/Model/InitialConditionsAdisTS/InitialConditionsAdisTS.py @@ -96,8 +96,6 @@ class InitialConditionsAdisTS(SQLSubModel): "FROM initial_conditions_adists" ) - print("db load ic adists : ", table) - if table is not None: for row in table: IC_id = row[0] @@ -259,16 +257,13 @@ class InitialConditionsAdisTS(SQLSubModel): self._status.modified() def delete_i(self, indexes): - data = list( - map( - lambda x: x[1], - filter( - lambda x: x[0] in indexes, - enumerate(self._data) - ) - ) - ) - self.delete(data) + for ind in indexes: + del self._data[ind] + self._status.modified() + + def insert(self, index, data): + self._data.insert(index, data) + self._status.modified() diff --git a/src/Model/InitialConditionsAdisTS/InitialConditionsAdisTSSpec.py b/src/Model/InitialConditionsAdisTS/InitialConditionsAdisTSSpec.py index a2838aba..45286f63 100644 --- a/src/Model/InitialConditionsAdisTS/InitialConditionsAdisTSSpec.py +++ b/src/Model/InitialConditionsAdisTS/InitialConditionsAdisTSSpec.py @@ -98,6 +98,7 @@ class ICAdisTSSpec(SQLSubModel): ) for row in table: + id = row[0] name = row[2] reach = row[3] start_kp = row[4] @@ -109,7 +110,24 @@ class ICAdisTSSpec(SQLSubModel): rate = row[10] enabled = (row[11] == 1) - new_spec = [name, reach, start_kp, end_kp, concentration, eg, em, ed, rate, enabled] + #new_spec = [name, reach, start_kp, end_kp, concentration, eg, em, ed, rate, enabled] + + new_spec = cls( + id=id, + name=name, + status=data['status'] + ) + + new_spec.reach = reach + new_spec.start_kp = start_kp + new_spec.end_kp = end_kp + new_spec.concentration = concentration + new_spec.eg = eg + new_spec.em = em + new_spec.ed = ed + new_spec.rate = rate + new_spec.enabled = enabled + new.append(new_spec) return new diff --git a/src/View/InitialConditionsAdisTS/Table.py b/src/View/InitialConditionsAdisTS/Table.py index 9f3afeac..e04c5d2f 100644 --- a/src/View/InitialConditionsAdisTS/Table.py +++ b/src/View/InitialConditionsAdisTS/Table.py @@ -116,11 +116,12 @@ class InitialConditionTableModel(PamhyrTableModel): self._data = data - print("init table model : ", self._river) - def _setup_lst(self): self._lst = self._data._data + def rowCount(self, parent): + return len(self._lst) + def data(self, index, role): if role != Qt.ItemDataRole.DisplayRole: return QVariant() @@ -135,7 +136,6 @@ class InitialConditionTableModel(PamhyrTableModel): return n elif self._headers[column] is "reach": n = self._lst[row].reach - print(n) if n is None: return self._trad['not_associated'] return next(filter(lambda edge: edge.id == n, self._river.edges())).name diff --git a/src/View/InitialConditionsAdisTS/UndoCommand.py b/src/View/InitialConditionsAdisTS/UndoCommand.py index 667aad32..28fc4f85 100644 --- a/src/View/InitialConditionsAdisTS/UndoCommand.py +++ b/src/View/InitialConditionsAdisTS/UndoCommand.py @@ -167,23 +167,26 @@ class AddCommand(QUndoCommand): if self._new is None: self._new = self._data.new(self._index) else: - self._ics_spec.insert(self._index, self._new) + self._data.insert(self._index, self._new) + class DelCommand(QUndoCommand): def __init__(self, data, ics_spec, rows): QUndoCommand.__init__(self) + self._data = data self._ics_spec = ics_spec self._rows = rows + #self._data = data self._ic = [] for row in rows: - self._ic.append((row, self._ics_spec.get(row))) + self._ic.append((row, self._ics_spec[row])) self._ic.sort() def undo(self): for row, el in self._ic: - self._ics_spec.insert(row, el) + self._data.insert(row, el) def redo(self): - self._ics_spec.delete_i(self._rows) + self._data.delete_i(self._rows) diff --git a/src/View/InitialConditionsAdisTS/Window.py b/src/View/InitialConditionsAdisTS/Window.py index 403bdae9..493e8c4d 100644 --- a/src/View/InitialConditionsAdisTS/Window.py +++ b/src/View/InitialConditionsAdisTS/Window.py @@ -71,7 +71,6 @@ class InitialConditionsAdisTSWindow(PamhyrWindow): def __init__(self, data=None, study=None, config=None, parent=None): self._data = [] self._data.append(data) - print(self._data[0]._data) trad = IcAdisTSTranslate() name = ( @@ -131,8 +130,8 @@ class InitialConditionsAdisTSWindow(PamhyrWindow): toolBar.addAction(action_add) toolBar.addAction(action_delete) - table_spec = QTableView() - layout.addWidget(table_spec) + self.table_spec = QTableView() + layout.addWidget(self.table_spec) self._delegate_reach = ComboBoxDelegate( trad=self._trad, @@ -150,7 +149,7 @@ class InitialConditionsAdisTSWindow(PamhyrWindow): ) self._table_spec = InitialConditionTableModel( - table_view=table_spec, + table_view=self.table_spec, table_headers=self._trad.get_dict("table_headers_spec"), editable_headers=["name", "reach", "start_kp", "end_kp", "concentration", "eg", "em", "ed", "rate"], delegates={ @@ -164,13 +163,13 @@ class InitialConditionsAdisTSWindow(PamhyrWindow): river=self._study.river ) - table_spec.setModel(self._table_spec) - table_spec.setSelectionBehavior(QAbstractItemView.SelectRows) - table_spec.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) - table_spec.setAlternatingRowColors(True) + self.table_spec.setModel(self._table_spec) + self.table_spec.setSelectionBehavior(QAbstractItemView.SelectRows) + self.table_spec.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) + self.table_spec.setAlternatingRowColors(True) - selectionModel = table_spec.selectionModel() - index = table_spec.model().index(0, 0) + selectionModel = self.table_spec.selectionModel() + index = self.table_spec.model().index(0, 0) selectionModel.select( index, @@ -178,10 +177,11 @@ class InitialConditionsAdisTSWindow(PamhyrWindow): QItemSelectionModel.ClearAndSelect | QItemSelectionModel.Select ) - table_spec.scrollTo(index) + self.table_spec.scrollTo(index) def index_selected_row(self): - table = self.find(QTableView, f"tableView") + #table = self.find(QTableView, f"tableView") + table = self.table_spec rows = table.selectionModel()\ .selectedRows() @@ -191,7 +191,8 @@ class InitialConditionsAdisTSWindow(PamhyrWindow): return rows[0].row() def index_selected_rows(self): - table = self.find(QTableView, f"tableView") + #table = self.find(QTableView, f"tableView") + table = self.table_spec return list( # Delete duplicate set( diff --git a/tests_cases/Enlargement/Enlargement.pamhyr b/tests_cases/Enlargement/Enlargement.pamhyr index 23c74b0ec7ff7612c35329d1b7d396a763c65546..d4b08c0bbb44d05b387edac1981b388fb6fc37fb 100644 GIT binary patch delta 89 zcmZp8z}@hGdqbN%uaTL#xv8a|iIK69u|@M_`R$YC84EwKG4kJF;J>k1(BK@uh8hDe m1BWOlJ3Au?aF(PNmpBw;Fo1wVk=3fR^O~P9gTOKcrV9XiQWy&W delta 42 ycmZp8z}@hGdqbN%uYsk7g^8)2p_z%fxl!|E`R$YC84EuwX4xRHokfA^&v^hh6b|zM -- GitLab