Commit 2e2f054a authored by Theophile Terraz's avatar Theophile Terraz
Browse files

debug Adis-TS

No related merge requests found
Showing with 56 additions and 45 deletions
+56 -45
...@@ -177,5 +177,19 @@ class Pollutants(SQLSubModel): ...@@ -177,5 +177,19 @@ class Pollutants(SQLSubModel):
def is_define(self): def is_define(self):
return len(self._data) != 0 return len(self._data) != 0
def new_from_data(self, data):
print("from_data before : ", data)
try:
new = [int(data[0])]
new += [float(d) for d in data[1:-1]]
except Exception as e:
logger.error(e)
new = None
print("from_data after : ", new)
return new
def __len__(self): def __len__(self):
return len(self._data) return len(self._data)
...@@ -46,6 +46,7 @@ class Results(object): ...@@ -46,6 +46,7 @@ class Results(object):
el.split("/")[-1][0:-4] el.split("/")[-1][0:-4]
for el in glob.glob(repertory_results + "/*.bin") for el in glob.glob(repertory_results + "/*.bin")
] ]
mylist.insert(0, mylist.pop(mylist.index("total_sediment")))
self._phys_var_list = ["C", "G", "M", "D", "L", "N", "R"] self._phys_var_list = ["C", "G", "M", "D", "L", "N", "R"]
......
...@@ -181,13 +181,20 @@ class TableModel(PamhyrTableModel): ...@@ -181,13 +181,20 @@ class TableModel(PamhyrTableModel):
) )
) )
elif self._headers[column] == "pol": elif self._headers[column] == "pol":
pol = next(filter(lambda x: x.name == value, if value == self._trad["not_associated"]:
self._data._Pollutants.Pollutants_List)) self._undo.push(
self._undo.push( SetPolCommand(
SetPolCommand( self._lst, row, None
self._lst, row, pol.id )
)
else:
pol = next(filter(lambda x: x.name == value,
self._data._Pollutants.Pollutants_List))
self._undo.push(
SetPolCommand(
self._lst, row, pol.id
)
) )
)
except Exception as e: except Exception as e:
logger.info(e) logger.info(e)
logger.debug(traceback.format_exc()) logger.debug(traceback.format_exc())
......
...@@ -68,9 +68,8 @@ class SetPolCommand(QUndoCommand): ...@@ -68,9 +68,8 @@ class SetPolCommand(QUndoCommand):
self._bcs = bcs self._bcs = bcs
self._index = index self._index = index
self._pollutant = pollutant
self._old = self._bcs[self._index].pollutant self._old = self._bcs[self._index].pollutant
self._new = self._pollutant self._new = pollutant
def undo(self): def undo(self):
self._bcs[self._index].pollutant = self._old self._bcs[self._index].pollutant = self._old
......
...@@ -74,7 +74,6 @@ class BoundaryConditionAdisTSWindow(PamhyrWindow): ...@@ -74,7 +74,6 @@ class BoundaryConditionAdisTSWindow(PamhyrWindow):
) )
self._pollutants_lst = self._study._river._Pollutants self._pollutants_lst = self._study._river._Pollutants
self._bcs = self._study.river.boundary_conditions_adists self._bcs = self._study.river.boundary_conditions_adists
self.setup_graph() self.setup_graph()
...@@ -157,11 +156,7 @@ class BoundaryConditionAdisTSWindow(PamhyrWindow): ...@@ -157,11 +156,7 @@ class BoundaryConditionAdisTSWindow(PamhyrWindow):
) )
def add(self): def add(self):
rows = self.index_selected_rows() self._table.add(len(self._bcs))
if len(self._bcs) == 0 or len(rows) == 0:
self._table.add(0)
else:
self._table.add(rows[0])
def delete(self): def delete(self):
rows = self.index_selected_rows() rows = self.index_selected_rows()
......
...@@ -90,9 +90,7 @@ class TableModel(PamhyrTableModel): ...@@ -90,9 +90,7 @@ class TableModel(PamhyrTableModel):
self.layoutAboutToBeChanged.emit() self.layoutAboutToBeChanged.emit()
self._undo.push( self._undo.push(PasteCommand(self._data, row,
PasteCommand(
self._data, row,
list( list(
map( map(
lambda d: self._data.new_from_data(d), lambda d: self._data.new_from_data(d),
...@@ -102,5 +100,4 @@ class TableModel(PamhyrTableModel): ...@@ -102,5 +100,4 @@ class TableModel(PamhyrTableModel):
) )
) )
self.layoutAboutToBeChanged.emit()
self.layoutChanged.emit() self.layoutChanged.emit()
...@@ -31,36 +31,35 @@ logger = logging.getLogger() ...@@ -31,36 +31,35 @@ logger = logging.getLogger()
class SetDataCommand(QUndoCommand): class SetDataCommand(QUndoCommand):
def __init__(self, data, index, column, new_value): def __init__(self, data, row, column, new_value):
QUndoCommand.__init__(self) QUndoCommand.__init__(self)
self._data = data self._data = data
self._index = index self._row = row
self._column = column self._column = column
self._old = self._data.data[self._index][self._column] self._old = self._data.data[self._row][self._column]
self._new = new_value self._new = new_value
def undo(self): def undo(self):
self._data.data[self._index][self._column] = self._old self._data.data[self._row][self._column] = self._old
def redo(self): def redo(self):
self._data.data[self._index][self._column] = self._new self._data.data[self._row][self._column] = self._new
class PasteCommand(QUndoCommand): class PasteCommand(QUndoCommand):
def __init__(self, data, row, hs): def __init__(self, data, row, new_data):
QUndoCommand.__init__(self) QUndoCommand.__init__(self)
self._data = data self._data = data
self._row = row self._row = row
self._h = hs self._new = [n for n in new_data[row]]
self._h.reverse() self._old = [o for o in self._data.data[row]]
def undo(self): def undo(self):
self._data.delete_i( for i in range(9):
range(self._row, self._row + len(self._h)) self._data.data[self._row][i] = self._old[i]
)
def redo(self): def redo(self):
for h in self._h: for i in range(9):
self._data.insert(self._row, h) self._data.data[self._row][i] = self._new[i]
...@@ -129,7 +129,7 @@ class EditPolluantWindow(PamhyrWindow): ...@@ -129,7 +129,7 @@ class EditPolluantWindow(PamhyrWindow):
def _paste(self): def _paste(self):
header, data = self.parseClipboardTable() header, data = self.parseClipboardTable()
logger.debug(f"paste: h:{header}, d:{data}") logger.debug(f"paste: header:{header}, data:{data}")
if len(data) == 0: if len(data) == 0:
return return
......
...@@ -103,7 +103,7 @@ class TableModel(PamhyrTableModel): ...@@ -103,7 +103,7 @@ class TableModel(PamhyrTableModel):
self._undo.push( self._undo.push(
DelCommand( DelCommand(
self._lst, rows, self._data.initial_conditions_adists self._lst, rows, self._data.ic_adists
) )
) )
......
...@@ -105,6 +105,7 @@ class PollutantsWindow(PamhyrWindow): ...@@ -105,6 +105,7 @@ class PollutantsWindow(PamhyrWindow):
def setup_connections(self): def setup_connections(self):
self.find(QAction, "action_add").triggered.connect(self.add) self.find(QAction, "action_add").triggered.connect(self.add)
self.find(QAction, "action_delete").setEnabled(False)
self.find(QAction, "action_delete").triggered.connect(self.delete) self.find(QAction, "action_delete").triggered.connect(self.delete)
self.find(QAction, "action_edit").triggered.connect(self.edit) self.find(QAction, "action_edit").triggered.connect(self.edit)
self.find(QAction, "action_initial_conditions" self.find(QAction, "action_initial_conditions"
...@@ -154,11 +155,7 @@ class PollutantsWindow(PamhyrWindow): ...@@ -154,11 +155,7 @@ class PollutantsWindow(PamhyrWindow):
) )
def add(self): def add(self):
rows = self.index_selected_rows() self._table.add(len(self._pollutants_lst))
if len(self._pollutants_lst) == 0 or len(rows) == 0:
self._table.add(0)
else:
self._table.add(rows[-1])
def delete(self): def delete(self):
rows = self.index_selected_rows() rows = self.index_selected_rows()
...@@ -181,6 +178,9 @@ class PollutantsWindow(PamhyrWindow): ...@@ -181,6 +178,9 @@ class PollutantsWindow(PamhyrWindow):
def edit(self): def edit(self):
rows = self.index_selected_rows() rows = self.index_selected_rows()
if len(rows) == 0:
return
for row in rows: for row in rows:
data = self._pollutants_lst.get(row) data = self._pollutants_lst.get(row)
...@@ -199,6 +199,8 @@ class PollutantsWindow(PamhyrWindow): ...@@ -199,6 +199,8 @@ class PollutantsWindow(PamhyrWindow):
def initial_conditions(self): def initial_conditions(self):
rows = self.index_selected_rows() rows = self.index_selected_rows()
if len(rows) == 0:
return
for row in rows: for row in rows:
pollutant_id = self._pollutants_lst.get(row).id pollutant_id = self._pollutants_lst.get(row).id
...@@ -219,11 +221,7 @@ class PollutantsWindow(PamhyrWindow): ...@@ -219,11 +221,7 @@ class PollutantsWindow(PamhyrWindow):
) )
initial.show() initial.show()
def boundary_conditions(self, tab=0): def boundary_conditions(self):
rows = self.index_selected_rows()
for row in rows:
pollutant_id = self._pollutants_lst.get(row).id
if self.sub_window_exists( if self.sub_window_exists(
BoundaryConditionAdisTSWindow, BoundaryConditionAdisTSWindow,
...@@ -242,9 +240,10 @@ class PollutantsWindow(PamhyrWindow): ...@@ -242,9 +240,10 @@ class PollutantsWindow(PamhyrWindow):
def lateral_contrib(self): def lateral_contrib(self):
rows = self.index_selected_rows() rows = self.index_selected_rows()
if len(rows) == 0:
return
for row in rows: pollutant_id = self._pollutants_lst.get(rows[0]).id
pollutant_id = self._pollutants_lst.get(row).id
if self.sub_window_exists( if self.sub_window_exists(
LateralContributionAdisTSWindow, LateralContributionAdisTSWindow,
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment