Show every time in US Eastern (America/New_York)
Webapp: config.DISPLAY_TZ (default America/New_York) and a local_dt filter that renders datetimes, ISO strings and Unix timestamps as e.g. "2026-10-05 13:54 EDT", DST included. Used for the ServiceNow tick list, technician to-do, imaging tiles and detail page; timestamp_fmt (reports, backups, enrollment) goes through it too instead of relying on the process TZ. CSV report_date is Eastern with its offset. Evidence-pack months are Eastern calendar months, so a wipe late on the 31st lands in that month rather than the next. Blancco: init points the new root's /etc/localtime at America/New_York so the GUI clock is local. Report timestamps keep their explicit offset; report.utc_offset stays 0 since a fixed offset cannot follow DST. Report file names stay UTC, as Blancco's own Save names them.
This commit is contained in:
@@ -164,8 +164,8 @@
|
||||
{% endif %}
|
||||
|
||||
<div class="mt-2 d-flex flex-wrap gap-3" style="color:var(--text-light); font-size:0.75rem;">
|
||||
<span>started <code class="mono">{{ s.started_at or '-' }}</code></span>
|
||||
<span>last <code class="mono">{{ s.last_updated or '-' }}</code></span>
|
||||
<span>started <code class="mono">{{ s.started_at | local_dt(true) }}</code></span>
|
||||
<span>last <code class="mono">{{ s.last_updated | local_dt(true) }}</code></span>
|
||||
<span>MAC <code class="mono">{{ s.mac or '-' }}</code></span>
|
||||
{% if s.current_stage %}<span class="mono">{{ s.current_stage }}</span>{% endif %}
|
||||
</div>
|
||||
|
||||
@@ -39,14 +39,14 @@
|
||||
<span class="mono" style="word-break: break-all;">{{ session.intune_device_id }}</span>
|
||||
{% else %}-{% endif %}
|
||||
</dd>
|
||||
<dt class="col-4 text-light">Started</dt><dd class="col-8"><span class="mono">{{ session.started_at or '-' }}</span></dd>
|
||||
<dt class="col-4 text-light">Last update</dt><dd class="col-8"><span class="mono">{{ session.last_updated or '-' }}</span></dd>
|
||||
<dt class="col-4 text-light">Started</dt><dd class="col-8"><span class="mono">{{ session.started_at | local_dt(true) }}</span></dd>
|
||||
<dt class="col-4 text-light">Last update</dt><dd class="col-8"><span class="mono">{{ session.last_updated | local_dt(true) }}</span></dd>
|
||||
<dt class="col-4 text-light">Stage</dt><dd class="col-8">
|
||||
{{ session.stage_index or 0 }}/{{ session.stage_total or '?' }}
|
||||
{% if session.current_stage %} - <span class="mono">{{ session.current_stage }}</span>{% endif %}
|
||||
</dd>
|
||||
{% if session.previous_run_at %}
|
||||
<dt class="col-4 text-light">Prior run</dt><dd class="col-8"><span class="mono">{{ session.previous_run_at }}</span></dd>
|
||||
<dt class="col-4 text-light">Prior run</dt><dd class="col-8"><span class="mono">{{ session.previous_run_at | local_dt(true) }}</span></dd>
|
||||
{% endif %}
|
||||
{% if session.error %}
|
||||
<dt class="col-4 text-danger">Error</dt>
|
||||
@@ -66,7 +66,7 @@
|
||||
<tbody>
|
||||
{% for h in session.stage_history %}
|
||||
<tr>
|
||||
<td><span class="mono">{{ h.ts }}</span></td>
|
||||
<td><span class="mono">{{ h.ts | local_dt(true) }}</span></td>
|
||||
<td><span class="badge badge-secondary">{{ h.stage_index }}</span></td>
|
||||
<td>
|
||||
<span class="badge badge-{{ 'success' if h.status == 'succeeded' else ('danger' if h.status == 'failed' else 'primary') }}">
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
<tr>
|
||||
<th>Serial</th>
|
||||
<th>Model</th>
|
||||
<th>Wiped (UTC)</th>
|
||||
<th>Wiped</th>
|
||||
<th>Tick in ServiceNow</th>
|
||||
<th>Destruction note</th>
|
||||
<th>Cloud</th>
|
||||
@@ -48,7 +48,7 @@
|
||||
{% if it.serial %}<button type="button" class="btn btn-sm btn-outline-secondary btn-row-action copy-btn" data-copy-text="{{ it.serial }}">copy</button>{% endif %}
|
||||
</td>
|
||||
<td>{{ it.model or '-' }}</td>
|
||||
<td class="mono text-nowrap">{{ it.when.strftime('%Y-%m-%d %H:%M') }}</td>
|
||||
<td class="mono text-nowrap">{{ it.when | local_dt }}</td>
|
||||
<td>
|
||||
{% if it.failed %}<span class="badge badge-danger">Blancco Wipe failed</span>
|
||||
{% else %}<span class="badge badge-success">Wiped</span>{% endif %}
|
||||
|
||||
@@ -62,13 +62,13 @@
|
||||
<p class="mb-2">Remove the drive, destroy it per site procedure, record the Certificate of Destruction and the destruction note on the RITM, then mark it here.</p>
|
||||
<div class="table-container">
|
||||
<table class="data-table">
|
||||
<thead><tr><th>Serial</th><th>Model</th><th>Wiped (UTC)</th><th>Failure</th><th class="text-end">Actions</th></tr></thead>
|
||||
<thead><tr><th>Serial</th><th>Model</th><th>Wiped</th><th>Failure</th><th class="text-end">Actions</th></tr></thead>
|
||||
<tbody>
|
||||
{% for it in todo.failed %}
|
||||
<tr title="{{ it.file }}">
|
||||
<td class="mono">{{ it.serial or '-' }}</td>
|
||||
<td>{{ it.model or '-' }}</td>
|
||||
<td class="mono text-nowrap">{{ it.when.strftime('%Y-%m-%d %H:%M') }}</td>
|
||||
<td class="mono text-nowrap">{{ it.when | local_dt }}</td>
|
||||
<td class="small wrap">{{ it.note }}</td>
|
||||
<td class="text-end text-nowrap">
|
||||
<a href="{{ url_for('blancco_view_report', filename=it.file) }}" class="pxe-btn pxe-btn-secondary btn-row-action"><i class="bi bi-eye"></i> Report</a>
|
||||
@@ -94,13 +94,13 @@
|
||||
<p class="mb-2">Auditors pull certificates from the Blancco Management Portal. Upload the report's XML there by hand, then mark it resolved.</p>
|
||||
<div class="table-container">
|
||||
<table class="data-table">
|
||||
<thead><tr><th>Serial</th><th>Model</th><th>Wiped (UTC)</th><th class="text-end">Actions</th></tr></thead>
|
||||
<thead><tr><th>Serial</th><th>Model</th><th>Wiped</th><th class="text-end">Actions</th></tr></thead>
|
||||
<tbody>
|
||||
{% for it in todo.not_in_cloud %}
|
||||
<tr title="{{ it.file }}">
|
||||
<td class="mono">{{ it.serial or '-' }}</td>
|
||||
<td>{{ it.model or '-' }}</td>
|
||||
<td class="mono text-nowrap">{{ it.when.strftime('%Y-%m-%d %H:%M') }}</td>
|
||||
<td class="mono text-nowrap">{{ it.when | local_dt }}</td>
|
||||
<td class="text-end text-nowrap">
|
||||
<a href="{{ url_for('blancco_download_report', filename=it.file) }}" class="pxe-btn pxe-btn-secondary btn-row-action"><i class="bi bi-download"></i> XML</a>
|
||||
<form method="post" action="{{ url_for('blancco_todo_mark', kind='cloud_resolved', key=it.document_id) }}" style="display:inline;">
|
||||
|
||||
Reference in New Issue
Block a user