Compare commits

..

No commits in common. "377c5080389ca0fe29579a035738b526d77c72f9" and "2db1f4c7f7267e35e9b2d6a41e3f051f604cae75" have entirely different histories.

9 changed files with 76 additions and 126 deletions

View File

@ -144,7 +144,6 @@ class Data(SQLSubModel):
"SELECT pamhyr_id, deleted, data0, data1, scenario FROM " +
"boundary_condition_data_adists " +
f"WHERE bca = {bca.id} " +
f"AND pamhyr_id NOT IN ({', '.join(map(str, loaded))}) " +
f"AND scenario = {scenario.id}"
)

View File

@ -135,7 +135,7 @@ class Data(SQLSubModel):
lca = data["lca"]
table = execute(
"SELECT pamhyr_id, deleted, data0, data1, scenario " +
"SELECT pamhyr_id, deleted, data0, data1 " +
"FROM lateral_contribution_data_adists " +
f"WHERE scenario = {scenario.id} " +
f"AND pamhyr_id NOT IN ({', '.join(map(str, loaded))}) " +
@ -152,16 +152,16 @@ class Data(SQLSubModel):
data1 = next(it)
owner_scenario = next(it)
lc = cls(
data = cls(
data0, data1,
id=pid, status=status,
owner_scenario=owner_scenario
)
if deleted:
lc.set_as_deleted()
data.set_as_deleted()
loaded.add(pid)
new.append(lc)
new.append(data)
data["scenario"] = scenario.parent
new += cls._db_load(execute, data)
@ -177,7 +177,7 @@ class Data(SQLSubModel):
execute(
"INSERT INTO " +
"lateral_contribution_data_adists(pamhyr_id, deleted," +
"lateral_contribution_adists(pamhyr_id, deleted," +
"data0, data1, lca, scenario) " +
"VALUES (" +
f"{self.id}, {self._db_format(self.is_deleted())}, " +
@ -384,8 +384,6 @@ class LateralContributionAdisTS(SQLSubModel):
")"
)
data["lca"] = self
ind = 0
for d in self._data:
data["ind"] = ind
@ -475,57 +473,3 @@ class LateralContributionAdisTS(SQLSubModel):
def end_rk(self, end_rk):
self._end_rk = end_rk
self.modified()
@property
def _default_0(self):
return self._types[0](0)
@property
def _default_1(self):
return self._types[1](0.0)
def add(self, index: int):
value = Data(self._default_0, self._default_1, status=self._status)
self._data.insert(index, value)
self.modified()
return value
def insert(self, index: int, data: Data):
self._data.insert(index, data)
self.modified()
def delete_i(self, indexes):
self._data = list(
map(
lambda e: e[1],
filter(
lambda e: e[0] not in indexes,
enumerate(self.data)
)
)
)
self.modified()
def index(self, bc):
self._data.index(bc)
def get_i(self, index: int):
return self._data[index]
def get_range(self, _range):
lst = []
for r in _range:
lst.append(r)
return lst
def _set_i_c_v(self, index: int, column: int, value):
v = self._data[index]
v[column] = self._types[column](value)
self._data[index] = v
self.modified()
def set_i_0(self, index: int, value):
self._set_i_c_v(index, 0, value)
def set_i_1(self, index: int, value):
self._set_i_c_v(index, 1, value)

View File

@ -63,16 +63,6 @@ class EditBoundaryConditionWindow(PamhyrWindow):
name = trad[self._pamhyr_name]
if self._data is not None:
n = self._data.node
node_name = next(filter(
lambda x: x.id == n, study.river._nodes
)).name
name += (
f" - {study.name} " +
f"({node_name})"
)
super(EditBoundaryConditionWindow, self).__init__(
title=name,
study=study,
@ -81,6 +71,16 @@ class EditBoundaryConditionWindow(PamhyrWindow):
parent=parent
)
if self._data is not None:
n = self._data.node
node_name = next(filter(
lambda x: x.id == n, self._study.river._nodes
)).name
name += (
f" - {study.name} " +
f"({node_name})"
)
self._hash_data.append(data)
self.setup_table()

View File

@ -215,14 +215,9 @@ class TableModel(PamhyrTableModel):
def delete(self, rows, parent=QModelIndex()):
self.beginRemoveRows(parent, rows[0], rows[-1])
row_by_bc = {
id(bc): row for row, bc in enumerate(self._bc_list._lst)
}
global_rows = [
row_by_bc[id(self._lst[row])]
for row in rows
if 0 <= row < len(self._lst)
]
global_rows = list(
map(self._global_row, rows)
)
self._undo.push(
DelCommand(
self._bc_list, global_rows

View File

@ -34,14 +34,29 @@ class SetDataCommand(QUndoCommand):
self._data = data
self._index = index
self._column = column
self._old = self._data.get_i(self._index)[self._column]
self._new = new_value
self._old = self._data._data[self._index][self._column]
_type = self._data._types[self._column]
self._new = _type(new_value)
def undo(self):
self._data._set_i_c_v(self._index, self._column, self._old)
if self._column == 0:
self._data._data[self._index] = (
self._old, self._data._data[self._index][1]
)
else:
self._data._data[self._index] = (
self._data._data[self._index][0], self._old
)
def redo(self):
self._data._set_i_c_v(self._index, self._column, self._new)
if self._column == 0:
self._data._data[self._index] = (
self._new, self._data._data[self._index][1]
)
else:
self._data._data[self._index] = (
self._data._data[self._index][0], self._new
)
class AddCommand(QUndoCommand):
@ -57,7 +72,11 @@ class AddCommand(QUndoCommand):
def redo(self):
if self._new is None:
self._new = self._data.add(self._index)
self._new = self._data._data.insert(
self._index, (
self._data._types[0](0), self._data._types[1](0.0)
)
)
else:
self._data._data.insert(self._index, self._new)

View File

@ -50,38 +50,14 @@ class EditLateralContributionAdisTSWindow(PamhyrWindow):
_pamhyr_ui = "EditLateralContributionAdisTS"
_pamhyr_name = "Edit lateral contribution AdisTS"
def __init__(self, data=None, study=None, config=None, parent=None):
def __init__(self, data=None,
study=None, config=None,
parent=None):
self._data = data
trad = LCETranslate()
name = trad[self._pamhyr_name]
if self._data is not None:
if self._data.reach is not None:
reach_name = next(filter(
lambda reach: reach.id == self._data.reach,
study.river.reachs()
)).name
else:
reach_name = trad['not_associated']
if self._data.begin_rk is not None:
begin_rk = self._data.begin_rk
else:
begin_rk = trad['not_associated']
if self._data.end_rk is not None:
end_rk = self._data.end_rk
else:
end_rk = trad['not_associated']
name += (
f" - {study.name} - " +
f"{reach_name} - " +
f"({begin_rk} - " +
f"{end_rk})"
)
super(EditLateralContributionAdisTSWindow, self).__init__(
title=name,
study=study,
@ -90,6 +66,20 @@ class EditLateralContributionAdisTSWindow(PamhyrWindow):
parent=parent
)
if self._data is not None:
if self._data.edge is not None:
edge_name = next(filter(
lambda edge: edge.id == self._data.edge,
self._study.river.edges()
)).name
else:
edge_name = trad['not_associated']
name += (
f"{study.name} - " +
f"{edge_name})"
)
self._hash_data.append(data)
self.setup_table()

View File

@ -121,7 +121,7 @@ class TableModel(PamhyrTableModel):
def _setup_lst(self):
if self._lcs_list is not None:
self._lcs_pol_list = [
lcs for lcs in self._lcs_list._lst
lcs for lcs in self._lcs_list.lst
if lcs.pollutant == self._pollutant
]
@ -209,14 +209,9 @@ class TableModel(PamhyrTableModel):
def delete(self, rows, parent=QModelIndex()):
self.beginRemoveRows(parent, rows[0], rows[-1])
row_by_lc = {
id(lc): row for row, lc in enumerate(self._lcs_list._lst)
}
global_rows = [
row_by_lc[id(self._lst[row])]
for row in rows
if 0 <= row < len(self._lst)
]
global_rows = list(
map(self._global_row, rows)
)
self._undo.push(
DelCommand(
self._lcs_list, global_rows
@ -236,3 +231,14 @@ class TableModel(PamhyrTableModel):
self._undo.redo()
self._setup_lst()
self.layoutChanged.emit()
def get(self, row):
if row < 0 or row >= len(self._lst):
return None
return self._lst[row]
def _global_row(self, row):
bc = self.get(row)
if bc is None:
return None
return self._lcs_list.index(bc)

View File

@ -109,7 +109,7 @@ class DelCommand(QUndoCommand):
self._lc = []
for row in rows:
self._lc.append((row, self._lcs._lst[row]))
self._lc.append((row, self._lcs.get(row)))
self._lc.sort()
def undo(self):

View File

@ -250,9 +250,6 @@ class LateralContributionAdisTSWindow(PamhyrWindow):
def edit(self):
rows = self.index_selected_rows()
if not rows:
return
for row in rows:
data = self._lcs.lst[row]