16 lines
3.3 KiB
HTML
16 lines
3.3 KiB
HTML
{% extends "base.html" %}
|
|
{% block title %}Systeemstatus · VacatureRadar{% endblock %}
|
|
{% block content %}
|
|
<header class="page-header"><div><p class="eyebrow">Automatisering centrum</p><h1>Radarbesturing</h1><p>Readiness, bronruns en veilige beheeracties op basis van actuele systeemdata.</p></div><span class="pill {% if health.ok %}pill-success{% else %}pill-failed{% endif %}">{% if health.ok %}Operationeel{% else %}Aandacht nodig{% endif %}</span></header>
|
|
<section class="system-hero">
|
|
<article class="system-readiness {% if health.ok %}is-healthy{% endif %}"><span class="source-icon"><svg class="icon"><use href="#icon-system"></use></svg></span><div><span class="field-label">Systeemreadiness</span><h2>{% if health.ok %}Radar is operationeel{% else %}Controle vereist{% endif %}</h2><p>Databasecontrole: {{ health.checks.database }}</p></div><span class="signal-dot" aria-hidden="true"></span></article>
|
|
<div class="system-counts">{% for row in source_summary %}<article><span class="field-label">Bronnen · {{ row.status }}</span><strong>{{ row.total }}</strong></article>{% endfor %}{% for row in job_summary %}<article><span class="field-label">Vacatures · {{ row.status }}</span><strong>{{ row.total }}</strong></article>{% endfor %}</div>
|
|
</section>
|
|
|
|
<div class="section-heading"><div><span class="section-kicker">Brontelemetrie</span><h2>Recente rungezondheid</h2><p>Meetwaarden uit maximaal de laatste 30 runs per bron.</p></div><a class="section-link" href="{% url 'sources:list' %}">Bronnen beheren <svg class="icon"><use href="#icon-arrow"></use></svg></a></div>
|
|
<div class="health-grid">{% for row in source_health %}<article class="health-card"><div class="health-card-head"><div><span class="field-label">{{ row.source_type }}</span><h3>{{ row.source_name }}</h3></div><span class="pill {% if row.success_ratio >= 0.8 %}pill-success{% elif row.monitored_runs == 0 %}pill-review{% else %}pill-failed{% endif %}">{% if row.monitored_runs == 0 %}Geen runs{% else %}Ratio {{ row.success_ratio|floatformat:2 }}{% endif %}</span></div><dl><div><dt>Runs</dt><dd>{{ row.monitored_runs }}</dd></div><div><dt>Gevonden</dt><dd>{{ row.extracted_count }}</dd></div><div><dt>Bijgewerkt</dt><dd>{{ row.updated_count }}</dd></div><div><dt>Latency</dt><dd>{% if row.avg_latency_ms is not None %}{{ row.avg_latency_ms|floatformat:0 }} ms{% else %}—{% endif %}</dd></div></dl>{% if row.last_health_reason %}<p class="attention">{{ row.last_health_reason }}</p>{% endif %}</article>{% empty %}<div class="empty-state compact-empty"><h2>Nog geen brontelemetrie</h2><p>Bronruns verschijnen hier zodra een toegestane bron is uitgevoerd.</p></div>{% endfor %}</div>
|
|
|
|
<div class="section-heading"><div><span class="section-kicker">Operaties</span><h2>Veilige beheeropdrachten</h2><p>Uitsluitend uitvoeren vanaf een vertrouwde shell op de server.</p></div></div>
|
|
<section class="panel command-panel"><div><span class="field-label">Verificatie</span><pre><code>make verify</code></pre></div><div><span class="field-label">Back-up</span><pre><code>./scripts/backup.sh</code></pre></div><div><span class="field-label">Herstel</span><pre><code>./scripts/restore.sh /pad/naar/backup.sql.gz</code></pre></div><div><span class="field-label">Bronnen initialiseren</span><pre><code>uv run python manage.py seed_sources</code></pre></div></section>
|
|
{% endblock %}
|