mirror of https://gitlab.com/pamhyr/pamhyr2
Date/time parameters: fixed the link between the start date in the study settings and the display in the tables
parent
b7aab9f263
commit
6586a7b191
|
|
@ -97,7 +97,9 @@ class TableModel(PamhyrTableModel):
|
||||||
if self._opt_data == "time":
|
if self._opt_data == "time":
|
||||||
value = timestamp_to_old_pamhyr_date(int(v))
|
value = timestamp_to_old_pamhyr_date(int(v))
|
||||||
else:
|
else:
|
||||||
value = str(datetime.fromtimestamp(v))
|
value = str(
|
||||||
|
self._start_date + timedelta(seconds=float(v))
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
value = f"{v}"
|
value = f"{v}"
|
||||||
|
|
||||||
|
|
@ -114,6 +116,10 @@ class TableModel(PamhyrTableModel):
|
||||||
column = index.column()
|
column = index.column()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
if (self._data.header[column] == "time"
|
||||||
|
and self._opt_data == "date"):
|
||||||
|
value = self.date_to_elapsed_seconds(value)
|
||||||
|
|
||||||
row = self.get_true_data_row(row)
|
row = self.get_true_data_row(row)
|
||||||
|
|
||||||
self._undo.push(
|
self._undo.push(
|
||||||
|
|
|
||||||
|
|
@ -173,7 +173,8 @@ class EditBoundaryConditionWindow(PamhyrWindow):
|
||||||
},
|
},
|
||||||
data=self._data,
|
data=self._data,
|
||||||
undo=self._undo_stack,
|
undo=self._undo_stack,
|
||||||
opt_data=self._study.time_system
|
opt_data=self._study.time_system,
|
||||||
|
start_date=self._study.date
|
||||||
)
|
)
|
||||||
|
|
||||||
table.setModel(self._table)
|
table.setModel(self._table)
|
||||||
|
|
|
||||||
|
|
@ -87,7 +87,9 @@ class TableModel(PamhyrTableModel):
|
||||||
if self._opt_data == "time":
|
if self._opt_data == "time":
|
||||||
value = timestamp_to_old_pamhyr_date(int(v))
|
value = timestamp_to_old_pamhyr_date(int(v))
|
||||||
else:
|
else:
|
||||||
value = str(datetime.fromtimestamp(v))
|
value = str(
|
||||||
|
self._start_date + timedelta(seconds=float(v))
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
value = f"{v}"
|
value = f"{v}"
|
||||||
|
|
||||||
|
|
@ -104,6 +106,10 @@ class TableModel(PamhyrTableModel):
|
||||||
column = index.column()
|
column = index.column()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
if (self._data.header[column] == "time"
|
||||||
|
and self._opt_data == "date"):
|
||||||
|
value = self.date_to_elapsed_seconds(value)
|
||||||
|
|
||||||
row = self.get_true_data_row(row)
|
row = self.get_true_data_row(row)
|
||||||
|
|
||||||
self._undo.push(
|
self._undo.push(
|
||||||
|
|
|
||||||
|
|
@ -120,7 +120,8 @@ class EditBoundaryConditionWindow(PamhyrWindow):
|
||||||
},
|
},
|
||||||
data=self._data,
|
data=self._data,
|
||||||
undo=self._undo_stack,
|
undo=self._undo_stack,
|
||||||
opt_data=self._study.time_system
|
opt_data=self._study.time_system,
|
||||||
|
start_date=self._study.date
|
||||||
)
|
)
|
||||||
|
|
||||||
table.setModel(self._table)
|
table.setModel(self._table)
|
||||||
|
|
|
||||||
|
|
@ -87,7 +87,9 @@ class TableModel(PamhyrTableModel):
|
||||||
if self._opt_data == "time":
|
if self._opt_data == "time":
|
||||||
value = timestamp_to_old_pamhyr_date(int(v))
|
value = timestamp_to_old_pamhyr_date(int(v))
|
||||||
else:
|
else:
|
||||||
value = str(datetime.fromtimestamp(v))
|
value = str(
|
||||||
|
self._start_date + timedelta(seconds=float(v))
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
value = f"{v}"
|
value = f"{v}"
|
||||||
|
|
||||||
|
|
@ -104,6 +106,10 @@ class TableModel(PamhyrTableModel):
|
||||||
column = index.column()
|
column = index.column()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
if (self._data.header[column] == "time"
|
||||||
|
and self._opt_data == "date"):
|
||||||
|
value = self.date_to_elapsed_seconds(value)
|
||||||
|
|
||||||
row = self.get_true_data_row(row)
|
row = self.get_true_data_row(row)
|
||||||
|
|
||||||
self._undo.push(
|
self._undo.push(
|
||||||
|
|
|
||||||
|
|
@ -117,7 +117,8 @@ class EditBoundaryConditionWindow(PamhyrWindow):
|
||||||
},
|
},
|
||||||
data=self._data,
|
data=self._data,
|
||||||
undo=self._undo_stack,
|
undo=self._undo_stack,
|
||||||
opt_data=self._study.time_system
|
opt_data=self._study.time_system,
|
||||||
|
start_date=self._study.date
|
||||||
)
|
)
|
||||||
|
|
||||||
table.setModel(self._table)
|
table.setModel(self._table)
|
||||||
|
|
|
||||||
|
|
@ -76,7 +76,9 @@ class TableModel(PamhyrTableModel):
|
||||||
if self._opt_data == "time":
|
if self._opt_data == "time":
|
||||||
value = timestamp_to_old_pamhyr_date(int(v))
|
value = timestamp_to_old_pamhyr_date(int(v))
|
||||||
else:
|
else:
|
||||||
value = str(datetime.fromtimestamp(v))
|
value = str(
|
||||||
|
self._start_date + timedelta(seconds=float(v))
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
value = f"{v}"
|
value = f"{v}"
|
||||||
|
|
||||||
|
|
@ -93,6 +95,10 @@ class TableModel(PamhyrTableModel):
|
||||||
column = index.column()
|
column = index.column()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
if (self._data.header[column] == "time"
|
||||||
|
and self._opt_data == "date"):
|
||||||
|
value = self.date_to_elapsed_seconds(value)
|
||||||
|
|
||||||
self._undo.push(
|
self._undo.push(
|
||||||
SetDataCommand(
|
SetDataCommand(
|
||||||
self._data, row, column, value
|
self._data, row, column, value
|
||||||
|
|
|
||||||
|
|
@ -109,7 +109,8 @@ class EditLateralContributionWindow(PamhyrWindow):
|
||||||
data=self._data,
|
data=self._data,
|
||||||
undo=self._undo_stack,
|
undo=self._undo_stack,
|
||||||
trad=self._trad,
|
trad=self._trad,
|
||||||
opt_data=self._study.time_system
|
opt_data=self._study.time_system,
|
||||||
|
start_date=self._study.date
|
||||||
)
|
)
|
||||||
|
|
||||||
table.setModel(self._table)
|
table.setModel(self._table)
|
||||||
|
|
|
||||||
|
|
@ -90,7 +90,9 @@ class TableModel(PamhyrTableModel):
|
||||||
if self._opt_data == "time":
|
if self._opt_data == "time":
|
||||||
value = timestamp_to_old_pamhyr_date_adists(int(v))
|
value = timestamp_to_old_pamhyr_date_adists(int(v))
|
||||||
else:
|
else:
|
||||||
value = str(datetime.fromtimestamp(v))
|
value = str(
|
||||||
|
self._start_date + timedelta(seconds=float(v))
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
value = f"{v}"
|
value = f"{v}"
|
||||||
|
|
||||||
|
|
@ -107,6 +109,10 @@ class TableModel(PamhyrTableModel):
|
||||||
column = index.column()
|
column = index.column()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
if (self._data.header[column] == "time"
|
||||||
|
and self._opt_data == "date"):
|
||||||
|
value = self.date_to_elapsed_seconds(value)
|
||||||
|
|
||||||
row = self.get_true_data_row(row)
|
row = self.get_true_data_row(row)
|
||||||
|
|
||||||
self._undo.push(
|
self._undo.push(
|
||||||
|
|
|
||||||
|
|
@ -124,7 +124,8 @@ class EditLateralContributionAdisTSWindow(PamhyrWindow):
|
||||||
data=self._data,
|
data=self._data,
|
||||||
undo=self._undo_stack,
|
undo=self._undo_stack,
|
||||||
trad=self._trad,
|
trad=self._trad,
|
||||||
opt_data=self._study.time_system
|
opt_data=self._study.time_system,
|
||||||
|
start_date=self._study.date
|
||||||
)
|
)
|
||||||
|
|
||||||
table.setModel(self._table)
|
table.setModel(self._table)
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,8 @@
|
||||||
import logging
|
import logging
|
||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
from tools import trace, timer
|
from tools import trace, timer
|
||||||
|
|
||||||
from Model.Except import NotImplementedMethodeError
|
from Model.Except import NotImplementedMethodeError
|
||||||
|
|
@ -59,6 +61,14 @@ class PamhyrTextDelegate(QStyledItemDelegate):
|
||||||
|
|
||||||
|
|
||||||
class PamhyrTableModel(QAbstractTableModel):
|
class PamhyrTableModel(QAbstractTableModel):
|
||||||
|
def date_to_elapsed_seconds(self, value):
|
||||||
|
"""Convert an entered date to seconds since the study start date."""
|
||||||
|
entered_date = value
|
||||||
|
if not isinstance(entered_date, datetime):
|
||||||
|
entered_date = datetime.fromisoformat(str(value).strip())
|
||||||
|
|
||||||
|
return (entered_date - self._start_date).total_seconds()
|
||||||
|
|
||||||
def _setup_delegates(self):
|
def _setup_delegates(self):
|
||||||
if self._table_view is None:
|
if self._table_view is None:
|
||||||
return
|
return
|
||||||
|
|
@ -85,7 +95,8 @@ class PamhyrTableModel(QAbstractTableModel):
|
||||||
undo=None,
|
undo=None,
|
||||||
opt_data=None,
|
opt_data=None,
|
||||||
options=["rows_selection"],
|
options=["rows_selection"],
|
||||||
parent=None):
|
parent=None,
|
||||||
|
start_date=None):
|
||||||
super(PamhyrTableModel, self).__init__()
|
super(PamhyrTableModel, self).__init__()
|
||||||
|
|
||||||
self._table_view = table_view
|
self._table_view = table_view
|
||||||
|
|
@ -102,6 +113,7 @@ class PamhyrTableModel(QAbstractTableModel):
|
||||||
self._options = options
|
self._options = options
|
||||||
self._undo = undo
|
self._undo = undo
|
||||||
self._lst = []
|
self._lst = []
|
||||||
|
self._start_date = start_date
|
||||||
|
|
||||||
self._setup_delegates()
|
self._setup_delegates()
|
||||||
self._setup_lst()
|
self._setup_lst()
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,9 @@ class TableModel(PamhyrTableModel):
|
||||||
if self._opt_data == "time":
|
if self._opt_data == "time":
|
||||||
value = timestamp_to_old_pamhyr_date(int(v))
|
value = timestamp_to_old_pamhyr_date(int(v))
|
||||||
else:
|
else:
|
||||||
value = str(datetime.fromtimestamp(v))
|
value = str(
|
||||||
|
self._start_date + timedelta(seconds=float(v))
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
value = f"{v}"
|
value = f"{v}"
|
||||||
|
|
||||||
|
|
@ -94,6 +96,10 @@ class TableModel(PamhyrTableModel):
|
||||||
column = index.column()
|
column = index.column()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
if (self._data.header[column] == "time"
|
||||||
|
and self._opt_data == "date"):
|
||||||
|
value = self.date_to_elapsed_seconds(value)
|
||||||
|
|
||||||
self._undo.push(
|
self._undo.push(
|
||||||
SetDataCommand(
|
SetDataCommand(
|
||||||
self._data, row, column, value
|
self._data, row, column, value
|
||||||
|
|
|
||||||
|
|
@ -121,7 +121,8 @@ class EditWeatherParametersWindow(PamhyrWindow):
|
||||||
data=self._data,
|
data=self._data,
|
||||||
undo=self._undo_stack,
|
undo=self._undo_stack,
|
||||||
trad=self._trad,
|
trad=self._trad,
|
||||||
opt_data=self._study.time_system
|
opt_data=self._study.time_system,
|
||||||
|
start_date=self._study.date
|
||||||
)
|
)
|
||||||
|
|
||||||
table.setModel(self._table)
|
table.setModel(self._table)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue