Date/time: now save global timestamp in the model, instead of relative

dev_dylan
Dylan Jeannin 2026-09-07 11:17:04 +02:00
parent beece68498
commit 2d2f83436c
7 changed files with 16 additions and 15 deletions

View File

@ -98,7 +98,7 @@ class TableModel(PamhyrTableModel):
value = timestamp_to_old_pamhyr_date(int(v)) value = timestamp_to_old_pamhyr_date(int(v))
else: else:
value = format_datetime( value = format_datetime(
self._start_date + timedelta(seconds=float(v)) datetime(1970, 1, 1) + timedelta(seconds=float(v))
) )
else: else:
value = f"{v}" value = f"{v}"
@ -118,7 +118,7 @@ class TableModel(PamhyrTableModel):
try: try:
if (self._data.header[column] == "time" if (self._data.header[column] == "time"
and self._opt_data == "date"): and self._opt_data == "date"):
value = self.date_to_elapsed_seconds(value) value = self.date_to_timestamp(value)
row = self.get_true_data_row(row) row = self.get_true_data_row(row)

View File

@ -88,7 +88,7 @@ class TableModel(PamhyrTableModel):
value = timestamp_to_old_pamhyr_date(int(v)) value = timestamp_to_old_pamhyr_date(int(v))
else: else:
value = format_datetime( value = format_datetime(
self._start_date + timedelta(seconds=float(v)) datetime(1970, 1, 1) + timedelta(seconds=float(v))
) )
else: else:
value = f"{v}" value = f"{v}"
@ -108,7 +108,7 @@ class TableModel(PamhyrTableModel):
try: try:
if (self._data.header[column] == "time" if (self._data.header[column] == "time"
and self._opt_data == "date"): and self._opt_data == "date"):
value = self.date_to_elapsed_seconds(value) value = self.date_to_timestamp(value)
row = self.get_true_data_row(row) row = self.get_true_data_row(row)

View File

@ -88,7 +88,7 @@ class TableModel(PamhyrTableModel):
value = timestamp_to_old_pamhyr_date(int(v)) value = timestamp_to_old_pamhyr_date(int(v))
else: else:
value = format_datetime( value = format_datetime(
self._start_date + timedelta(seconds=float(v)) datetime(1970, 1, 1) + timedelta(seconds=float(v))
) )
else: else:
value = f"{v}" value = f"{v}"
@ -108,7 +108,7 @@ class TableModel(PamhyrTableModel):
try: try:
if (self._data.header[column] == "time" if (self._data.header[column] == "time"
and self._opt_data == "date"): and self._opt_data == "date"):
value = self.date_to_elapsed_seconds(value) value = self.date_to_timestamp(value)
row = self.get_true_data_row(row) row = self.get_true_data_row(row)

View File

@ -77,7 +77,7 @@ class TableModel(PamhyrTableModel):
value = timestamp_to_old_pamhyr_date(int(v)) value = timestamp_to_old_pamhyr_date(int(v))
else: else:
value = format_datetime( value = format_datetime(
self._start_date + timedelta(seconds=float(v)) datetime(1970, 1, 1) + timedelta(seconds=float(v))
) )
else: else:
value = f"{v}" value = f"{v}"
@ -97,7 +97,7 @@ class TableModel(PamhyrTableModel):
try: try:
if (self._data.header[column] == "time" if (self._data.header[column] == "time"
and self._opt_data == "date"): and self._opt_data == "date"):
value = self.date_to_elapsed_seconds(value) value = self.date_to_timestamp(value)
self._undo.push( self._undo.push(
SetDataCommand( SetDataCommand(

View File

@ -91,7 +91,7 @@ class TableModel(PamhyrTableModel):
value = timestamp_to_old_pamhyr_date_adists(int(v)) value = timestamp_to_old_pamhyr_date_adists(int(v))
else: else:
value = format_datetime( value = format_datetime(
self._start_date + timedelta(seconds=float(v)) datetime(1970, 1, 1) + timedelta(seconds=float(v))
) )
else: else:
value = f"{v}" value = f"{v}"
@ -111,7 +111,7 @@ class TableModel(PamhyrTableModel):
try: try:
if (self._data.header[column] == "time" if (self._data.header[column] == "time"
and self._opt_data == "date"): and self._opt_data == "date"):
value = self.date_to_elapsed_seconds(value) value = self.date_to_timestamp(value)
row = self.get_true_data_row(row) row = self.get_true_data_row(row)

View File

@ -18,6 +18,7 @@
import logging import logging
import traceback import traceback
from datetime import timezone
from tools import trace, timer, parse_datetime from tools import trace, timer, parse_datetime
@ -62,8 +63,8 @@ class PamhyrTextDelegate(QStyledItemDelegate):
class PamhyrTableModel(QAbstractTableModel): class PamhyrTableModel(QAbstractTableModel):
def date_to_elapsed_seconds(self, value): def date_to_timestamp(self, value):
"""Convert an entered date to seconds since the study start date.""" """Convert an accepted calendar date to its raw UTC timestamp."""
try: try:
entered_date = parse_datetime(value) entered_date = parse_datetime(value)
except ValueError as error: except ValueError as error:
@ -81,7 +82,7 @@ class PamhyrTableModel(QAbstractTableModel):
) )
raise error raise error
return (entered_date - self._start_date).total_seconds() return entered_date.replace(tzinfo=timezone.utc).timestamp()
def _setup_delegates(self): def _setup_delegates(self):
if self._table_view is None: if self._table_view is None:

View File

@ -78,7 +78,7 @@ class TableModel(PamhyrTableModel):
value = timestamp_to_old_pamhyr_date(int(v)) value = timestamp_to_old_pamhyr_date(int(v))
else: else:
value = format_datetime( value = format_datetime(
self._start_date + timedelta(seconds=float(v)) datetime(1970, 1, 1) + timedelta(seconds=float(v))
) )
else: else:
value = f"{v}" value = f"{v}"
@ -98,7 +98,7 @@ class TableModel(PamhyrTableModel):
try: try:
if (self._data.header[column] == "time" if (self._data.header[column] == "time"
and self._opt_data == "date"): and self._opt_data == "date"):
value = self.date_to_elapsed_seconds(value) value = self.date_to_timestamp(value)
self._undo.push( self._undo.push(
SetDataCommand( SetDataCommand(