{% extends "base.html" %} {% from 'macros/badges.html' import badge_warning %} {% block title %}Admin — MedCover{% endblock %} {% block content %}

Administrace

{# ── Service status ──────────────────────────────────────────────────────── #}
{# DB #}
{% set db_color = {'ok': 'success', 'warning': 'warning', 'error': 'danger'}[db_status] %}
Databáze
{% if db_status == 'ok' %} ✔ OK
SELECT 1 — {{ db_ms }} ms
{% elif db_status == 'warning' %} ⚠ Pomalá
SELECT 1 — {{ db_ms }} ms (limit 200 ms)
{% else %} ✘ Chyba {% if db_error %}
{{ db_error }}
{% endif %} {% endif %}
{# Scheduler #}
{% set sc = {'ok': 'success', 'warning': 'warning', 'error': 'danger', 'unknown': 'secondary'}[sched_status] %}
Plánovač
{% if sched_status == 'ok' %} ✔ OK
heartbeat před {{ sched_age_s }} s
{% elif sched_status == 'warning' %} ⚠ Varování
heartbeat před {{ sched_age_s }} s (limit 30 s)
{% elif sched_status == 'error' %} ✘ Chyba
heartbeat před {{ sched_age_s }} s — kontejner neodpovídá
{% else %} ? Neznámý
heartbeat dosud nepřijat
{% endif %}
{# SMTP #}
{% set smtp_color = {'ok': 'success', 'warning': 'warning', 'error': 'danger', 'unconfigured': 'secondary'}[smtp_status] %}
SMTP
{% if smtp_status == 'unconfigured' %} — Nenakonfigurováno {% elif smtp_status == 'ok' %} ✔ OK
{{ settings.smtp_server }}:{{ settings.smtp_port }} — {{ smtp_ms }} ms
{% elif smtp_status == 'warning' %} ⚠ Pomalé
{{ settings.smtp_server }}:{{ settings.smtp_port }} — {{ smtp_ms }} ms (limit 1000 ms)
{% else %} ✘ Chyba
{% if smtp_error %}{{ smtp_error }}{% else %}{{ settings.smtp_server }}:{{ settings.smtp_port }}{% endif %}
{% endif %}
{# E-mail fronta #}
{% if outbox_last_status == 'sent' %} {% set q_border = 'success' %} {% elif outbox_last_status == 'failed' %} {% set q_border = 'danger' %} {% elif outbox_last_status == 'pending' %} {% set q_border = 'warning' %} {% else %} {% set q_border = 'secondary' %} {% endif %}
Fronta e-mailů (24 h)
{% if outbox_sent > 0 %} {{ outbox_sent }} odesláno {% endif %} {% if outbox_pending > 0 %} {{ badge_warning(outbox_pending ~ ' čeká') }} {% endif %} {% if outbox_failed > 0 %} {{ outbox_failed }} selhalo {% endif %} {% if outbox_sent == 0 and outbox_pending == 0 and outbox_failed == 0 %} žádná aktivita {% endif %}
{% if outbox_last_sent %}
posl. odesláno {{ outbox_last_sent | localdt }}
{% endif %}
{# ── Statistics ──────────────────────────────────────────────────────────── #}
Uživatelé
Celkem{{ user_total }}
Aktivní{{ user_active }}
Čekají na aktivaci {{ user_pending }}
Archivovaní{{ user_archived }}
Akce (celkem {{ event_total }})
{% for status_label, count in event_counts.items() %} {% if count > 0 %}
{{ status_label }}{{ count }}
{% endif %} {% endfor %} {% if event_total == 0 %} Žádné akce. {% endif %}
{# ── Recent audit log ────────────────────────────────────────────────────── #}
Poslední záznamy v audit logu Celý audit log →
{# ── Feedback summary ────────────────────────────────────────────────────── #}
💬 Zpětná vazba {% if feedback_count %} {{ feedback_count }} {% endif %} Zobrazit vše →
{% if feedback_count %} Celkem {{ feedback_count }} záznam(ů) zpětné vazby od uživatelů. {% else %} Zatím nebyla odeslána žádná zpětná vazba. {% endif %}
{# ── Build info ──────────────────────────────────────────────────────────── #}
{% set commit = config.get("GIT_COMMIT", "dev") %} {% set version = config.get("APP_VERSION", "unknown") %} v{{ version }}  ·  {% if commit != "dev" %} {{ commit }} {% else %} dev {% endif %}  ·  Změny ve verzích
{% endblock %}