mirror of https://gitlab.com/pamhyr/pamhyr2
Compare commits
No commits in common. "7565d8ee956102d60e1875194a6359341b11487b" and "377c5080389ca0fe29579a035738b526d77c72f9" have entirely different histories.
7565d8ee95
...
377c508038
3
AUTHORS
3
AUTHORS
|
|
@ -1,4 +1,3 @@
|
||||||
Sylvain COULIBALY, INRAE, 2020 - 2022
|
Sylvain COULIBALY, INRAE, 2020 - 2022
|
||||||
Théophile TERRAZ, INRAE, 2022 - 2024
|
Théophile TERRAZ, INRAE, 2022 - 2024
|
||||||
Pierre-Antoine ROUBY, INRAE, 2023 - 2025
|
Pierre-Antoine ROUBY, INRAE, 2023 - 2025
|
||||||
Dylan JEANNIN, INRAE, 2026
|
|
||||||
|
|
@ -143,9 +143,9 @@ class Data(SQLSubModel):
|
||||||
table = execute(
|
table = execute(
|
||||||
"SELECT pamhyr_id, deleted, data0, data1, scenario FROM " +
|
"SELECT pamhyr_id, deleted, data0, data1, scenario FROM " +
|
||||||
"boundary_condition_data_adists " +
|
"boundary_condition_data_adists " +
|
||||||
f"WHERE scenario = {scenario.id} " +
|
f"WHERE bca = {bca.id} " +
|
||||||
# f"AND pamhyr_id NOT IN ({', '.join(map(str, loaded))}) " +
|
f"AND pamhyr_id NOT IN ({', '.join(map(str, loaded))}) " +
|
||||||
f"AND bca = {bca.id}"
|
f"AND scenario = {scenario.id}"
|
||||||
)
|
)
|
||||||
|
|
||||||
if table is not None:
|
if table is not None:
|
||||||
|
|
@ -188,9 +188,8 @@ class Data(SQLSubModel):
|
||||||
execute(
|
execute(
|
||||||
"INSERT INTO " +
|
"INSERT INTO " +
|
||||||
"boundary_condition_data_adists(" +
|
"boundary_condition_data_adists(" +
|
||||||
"pamhyr_id, deleted, data0, data1, bca, scenario) " +
|
"pamhyr_id, data0, data1, bca, scenario) " +
|
||||||
f"VALUES ({self.id}, {self._db_format(self.is_deleted())}, " +
|
f"VALUES ({self.id}, '{data0}', {data1}, {bca.id}, " +
|
||||||
f"'{data0}', {data1}, {bca.id}, " +
|
|
||||||
f"{self._status.scenario_id})"
|
f"{self._status.scenario_id})"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -438,14 +437,7 @@ class BoundaryConditionAdisTS(SQLSubModel):
|
||||||
d._data_traversal(predicate, modifier, data)
|
d._data_traversal(predicate, modifier, data)
|
||||||
|
|
||||||
def __len__(self):
|
def __len__(self):
|
||||||
return len(
|
return len(self._data)
|
||||||
list(
|
|
||||||
filter(
|
|
||||||
lambda el: el is not None and not el.is_deleted(),
|
|
||||||
self._data
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def time_convert(cls, data):
|
def time_convert(cls, data):
|
||||||
|
|
@ -501,12 +493,7 @@ class BoundaryConditionAdisTS(SQLSubModel):
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def data(self):
|
def data(self):
|
||||||
return list(
|
return self._data.copy()
|
||||||
filter(
|
|
||||||
lambda el: el is not None and not el.is_deleted(),
|
|
||||||
self._data
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def _default_0(self):
|
def _default_0(self):
|
||||||
|
|
@ -550,7 +537,7 @@ class BoundaryConditionAdisTS(SQLSubModel):
|
||||||
def delete_i(self, indexes):
|
def delete_i(self, indexes):
|
||||||
self._data = list(
|
self._data = list(
|
||||||
map(
|
map(
|
||||||
lambda e: e[1].set_as_deleted(),
|
lambda e: e[1],
|
||||||
filter(
|
filter(
|
||||||
lambda e: e[0] not in indexes,
|
lambda e: e[0] not in indexes,
|
||||||
enumerate(self.data)
|
enumerate(self.data)
|
||||||
|
|
|
||||||
|
|
@ -410,7 +410,7 @@ class LateralContributionAdisTS(SQLSubModel):
|
||||||
return len(
|
return len(
|
||||||
list(
|
list(
|
||||||
filter(
|
filter(
|
||||||
lambda el: el is not None and not el.is_deleted(),
|
lambda el: not el.is_deleted(),
|
||||||
self._data
|
self._data
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
@ -456,12 +456,7 @@ class LateralContributionAdisTS(SQLSubModel):
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def data(self):
|
def data(self):
|
||||||
return list(
|
return self._data.copy()
|
||||||
filter(
|
|
||||||
lambda el: el is not None and not el.is_deleted(),
|
|
||||||
self._data
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def begin_rk(self):
|
def begin_rk(self):
|
||||||
|
|
@ -502,7 +497,7 @@ class LateralContributionAdisTS(SQLSubModel):
|
||||||
def delete_i(self, indexes):
|
def delete_i(self, indexes):
|
||||||
self._data = list(
|
self._data = list(
|
||||||
map(
|
map(
|
||||||
lambda e: e[1].set_as_deleted(),
|
lambda e: e[1],
|
||||||
filter(
|
filter(
|
||||||
lambda e: e[0] not in indexes,
|
lambda e: e[0] not in indexes,
|
||||||
enumerate(self.data)
|
enumerate(self.data)
|
||||||
|
|
|
||||||
|
|
@ -50,22 +50,6 @@ logger = logging.getLogger()
|
||||||
|
|
||||||
|
|
||||||
class TableModel(PamhyrTableModel):
|
class TableModel(PamhyrTableModel):
|
||||||
def get_true_data_row(self, row):
|
|
||||||
if len(self._data.data) > 0:
|
|
||||||
bc = self._data.data[row]
|
|
||||||
else:
|
|
||||||
return 0
|
|
||||||
|
|
||||||
return next(
|
|
||||||
map(
|
|
||||||
lambda e: e[0],
|
|
||||||
filter(
|
|
||||||
lambda e: e[1] == bc,
|
|
||||||
enumerate(self._data._data)
|
|
||||||
)
|
|
||||||
), 0
|
|
||||||
)
|
|
||||||
|
|
||||||
def data(self, index, role):
|
def data(self, index, role):
|
||||||
if role == Qt.TextAlignmentRole:
|
if role == Qt.TextAlignmentRole:
|
||||||
return Qt.AlignHCenter | Qt.AlignVCenter
|
return Qt.AlignHCenter | Qt.AlignVCenter
|
||||||
|
|
@ -79,7 +63,6 @@ class TableModel(PamhyrTableModel):
|
||||||
value = QVariant()
|
value = QVariant()
|
||||||
|
|
||||||
if 0 <= column < 2:
|
if 0 <= column < 2:
|
||||||
row = self.get_true_data_row(row)
|
|
||||||
v = self._data._data[row][column]
|
v = self._data._data[row][column]
|
||||||
if self._data._types[column] == float:
|
if self._data._types[column] == float:
|
||||||
value = f"{v:.4f}"
|
value = f"{v:.4f}"
|
||||||
|
|
@ -101,8 +84,6 @@ class TableModel(PamhyrTableModel):
|
||||||
column = index.column()
|
column = index.column()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
row = self.get_true_data_row(row)
|
|
||||||
|
|
||||||
self._undo.push(
|
self._undo.push(
|
||||||
SetDataCommand(
|
SetDataCommand(
|
||||||
self._data, row, column, value
|
self._data, row, column, value
|
||||||
|
|
@ -129,20 +110,14 @@ class TableModel(PamhyrTableModel):
|
||||||
|
|
||||||
def delete(self, rows, parent=QModelIndex()):
|
def delete(self, rows, parent=QModelIndex()):
|
||||||
self.beginRemoveRows(parent, rows[0], rows[-1])
|
self.beginRemoveRows(parent, rows[0], rows[-1])
|
||||||
_rows = list(
|
|
||||||
map(
|
|
||||||
lambda r: self.get_true_data_row(r),
|
|
||||||
rows
|
|
||||||
)
|
|
||||||
)
|
|
||||||
self._undo.push(
|
self._undo.push(
|
||||||
DelCommand(
|
DelCommand(
|
||||||
self._data, _rows
|
self._data, rows
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
self.endRemoveRows()
|
self.endRemoveRows()
|
||||||
self.layoutChanged.emit()
|
|
||||||
|
|
||||||
def sort(self, _reverse, parent=QModelIndex()):
|
def sort(self, _reverse, parent=QModelIndex()):
|
||||||
self.layoutAboutToBeChanged.emit()
|
self.layoutAboutToBeChanged.emit()
|
||||||
|
|
|
||||||
|
|
@ -80,11 +80,10 @@ class DelCommand(QUndoCommand):
|
||||||
|
|
||||||
def undo(self):
|
def undo(self):
|
||||||
for row, el in self._bc:
|
for row, el in self._bc:
|
||||||
el.set_as_not_deleted()
|
self._data.insert(row, el)
|
||||||
|
|
||||||
def redo(self):
|
def redo(self):
|
||||||
for row, el in self._bc:
|
self._data.delete_i(self._rows)
|
||||||
el.set_as_deleted()
|
|
||||||
|
|
||||||
|
|
||||||
class PasteCommand(QUndoCommand):
|
class PasteCommand(QUndoCommand):
|
||||||
|
|
|
||||||
|
|
@ -52,23 +52,6 @@ logger = logging.getLogger()
|
||||||
|
|
||||||
|
|
||||||
class TableModel(PamhyrTableModel):
|
class TableModel(PamhyrTableModel):
|
||||||
def get_true_data_row(self, row):
|
|
||||||
|
|
||||||
if len(self._data.data) > 0:
|
|
||||||
lc = self._data.data[row]
|
|
||||||
else:
|
|
||||||
return 0
|
|
||||||
|
|
||||||
return next(
|
|
||||||
map(
|
|
||||||
lambda e: e[0],
|
|
||||||
filter(
|
|
||||||
lambda e: e[1] == lc,
|
|
||||||
enumerate(self._data._data)
|
|
||||||
)
|
|
||||||
), 0
|
|
||||||
)
|
|
||||||
|
|
||||||
def data(self, index, role):
|
def data(self, index, role):
|
||||||
if role == Qt.TextAlignmentRole:
|
if role == Qt.TextAlignmentRole:
|
||||||
return Qt.AlignHCenter | Qt.AlignVCenter
|
return Qt.AlignHCenter | Qt.AlignVCenter
|
||||||
|
|
@ -82,7 +65,6 @@ class TableModel(PamhyrTableModel):
|
||||||
value = QVariant()
|
value = QVariant()
|
||||||
|
|
||||||
if 0 <= column < 2:
|
if 0 <= column < 2:
|
||||||
row = self.get_true_data_row(row)
|
|
||||||
v = self._data._data[row][column]
|
v = self._data._data[row][column]
|
||||||
if self._data._types[column] == float:
|
if self._data._types[column] == float:
|
||||||
value = f"{v:.4f}"
|
value = f"{v:.4f}"
|
||||||
|
|
@ -104,8 +86,6 @@ class TableModel(PamhyrTableModel):
|
||||||
column = index.column()
|
column = index.column()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
row = self.get_true_data_row(row)
|
|
||||||
|
|
||||||
self._undo.push(
|
self._undo.push(
|
||||||
SetDataCommand(
|
SetDataCommand(
|
||||||
self._data, row, column, value
|
self._data, row, column, value
|
||||||
|
|
@ -133,18 +113,10 @@ class TableModel(PamhyrTableModel):
|
||||||
def delete(self, rows, parent=QModelIndex()):
|
def delete(self, rows, parent=QModelIndex()):
|
||||||
self.beginRemoveRows(parent, rows[0], rows[-1])
|
self.beginRemoveRows(parent, rows[0], rows[-1])
|
||||||
|
|
||||||
_rows = list(
|
|
||||||
map(
|
|
||||||
lambda r: self.get_true_data_row(r),
|
|
||||||
rows
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
self._undo.push(
|
self._undo.push(
|
||||||
DelCommand(
|
DelCommand(
|
||||||
self._data, _rows
|
self._data, rows
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
self.endRemoveRows()
|
self.endRemoveRows()
|
||||||
self.layoutChanged.emit()
|
|
||||||
|
|
|
||||||
|
|
@ -76,8 +76,8 @@ class DelCommand(QUndoCommand):
|
||||||
|
|
||||||
def undo(self):
|
def undo(self):
|
||||||
for row, el in self._lc:
|
for row, el in self._lc:
|
||||||
el.set_as_not_deleted()
|
self._data._data.insert(row, el)
|
||||||
|
|
||||||
def redo(self):
|
def redo(self):
|
||||||
for row, el in self._lc:
|
for row in self._rows:
|
||||||
el.set_as_deleted()
|
del self._data._data[row]
|
||||||
|
|
|
||||||
|
|
@ -321,7 +321,7 @@ def timestamp_to_old_pamhyr_date_adists(time: int):
|
||||||
minutes = (dt.seconds % 3600) // 60
|
minutes = (dt.seconds % 3600) // 60
|
||||||
seconds = dt.seconds % 60
|
seconds = dt.seconds % 60
|
||||||
|
|
||||||
s = f"{dt.days:>3}:{hours:>2}:{minutes:>2}:{seconds:>2}"
|
s = f"{dt.days:>3}:{hours:>2}:{minutes:>2}"
|
||||||
s = s.replace(" ", "0")
|
s = s.replace(" ", "0")
|
||||||
|
|
||||||
return s
|
return s
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue