Board row ordering, type-derived row colours, and clearer upcoming events
This commit is contained in:
@@ -27,6 +27,15 @@ from datetime import datetime
|
||||
from shopdb.api import db
|
||||
|
||||
|
||||
def _utciso(value):
|
||||
"""Naive-UTC datetime -> ISO string marked as UTC, or None.
|
||||
|
||||
Every datetime this plugin stores is naive UTC. Serialising it without the
|
||||
Z leaves the receiver to guess, and JavaScript guesses browser-local.
|
||||
"""
|
||||
return value.isoformat() + 'Z' if value else None
|
||||
|
||||
|
||||
class BackupRevision(db.Model):
|
||||
"""A single point-in-time configuration snapshot of an asset."""
|
||||
|
||||
@@ -123,8 +132,13 @@ class BackupRevision(db.Model):
|
||||
# download <machinenumber>.reg without a second round trip.
|
||||
'assetnumber': self.asset.assetnumber if self.asset else None,
|
||||
'sourcehostname': self.sourcehostname,
|
||||
'collectedat': self.collectedat.isoformat() if self.collectedat else None,
|
||||
'createdat': self.createdat.isoformat() if self.createdat else None,
|
||||
# Both columns hold NAIVE UTC (see collectedat above), so the wire
|
||||
# format says so with a trailing Z. Without it JavaScript's
|
||||
# `new Date('2026-08-07T12:00:00')` parses the string as
|
||||
# BROWSER-LOCAL and the timestamp silently shifts by the viewer's
|
||||
# offset before any site-timezone formatting is applied.
|
||||
'collectedat': _utciso(self.collectedat),
|
||||
'createdat': _utciso(self.createdat),
|
||||
}
|
||||
if includepayload:
|
||||
data['payloadjson'] = self.payload
|
||||
|
||||
Reference in New Issue
Block a user