{% extends 'workflows/base_shell.html' %} {% load static i18n %} {% block title %}{% trans "Backup & Recovery" %}{% endblock %} {% block shell_header %} {% include 'workflows/includes/app_header.html' with header_show_home=1 header_show_lang=1 header_inside_shell=1 %} {% endblock %} {% block extra_css %} {% endblock %} {% block shell_body %}
{% include 'workflows/includes/messages.html' %}

{% trans "Backup-Status" %}

{{ backup_health.summary }}

{% if backup_health.status == 'healthy' %} {{ backup_health.label }} {% elif backup_health.status == 'stale' %} {{ backup_health.label }} {% elif backup_health.status == 'unverified' %} {{ backup_health.label }} {% else %} {{ backup_health.label }} {% endif %} {% if backup_health.bundle_name %} {{ backup_health.bundle_name }} {% endif %} {% if backup_health.verified_at %} {% trans "Zuletzt verifiziert:" %} {{ backup_health.verified_at|slice:":16"|cut:"T" }} {% endif %}

{% trans "Aktionen" %}

{% trans "Erstellung und Verifikation laufen im App-Kontext. Restore bleibt bewusst CLI-only." %}

{% csrf_token %}

{% trans "Automation" %}

{% trans "Für einen geplanten Verify-Run außerhalb der UI:" %}

docker compose exec -T web python manage.py verify_latest_backup --create-if-missing

{% trans "Verfügbare Backup-Bundles" %}

{% if rows %}
{% for row in rows %} {% endfor %}
{% trans "Bundle" %} {% trans "Erstellt" %} {% trans "Verifiziert" %} {% trans "Status" %} {% trans "Inhalt" %} {% trans "Remote" %} {% trans "Aktion" %}
{{ row.name }} {% if row.created_at %}{{ row.created_at|slice:":16"|cut:"T" }}{% else %}-{% endif %} {% if row.verified_at %}{{ row.verified_at|slice:":16"|cut:"T" }}{% else %}-{% endif %} {% if row.verify_status == 'verified' %} {% trans "Verifiziert" %} {% else %} {% trans "Nicht geprüft" %} {% endif %} {% if row.db_dump_exists %}DB{% endif %} {% if row.media_archive_exists %}Media{% endif %} {% if row.summary %}
{{ row.summary }}
{% endif %}
{% if row.remote_status == 'uploaded' %} {% trans "Hochgeladen" %} {% elif row.remote_status == 'failed' %} {% trans "Fehlgeschlagen" %} {% elif row.remote_status == 'not_implemented' %} {% trans "Vorbereitet" %} {% elif row.remote_status == 'disabled' %} {% trans "Deaktiviert" %} {% else %} {% trans "Lokal" %} {% endif %} {% if row.db_dump_exists or row.media_archive_exists %}
{% trans "Lokal gespeichert" %}
{% else %}
{% trans "Lokal nicht vorhanden" %}
{% endif %} {% if row.remote_target_type %}
{{ row.remote_target_type|upper }}
{% endif %} {% if row.remote_path %}
{{ row.remote_path }}
{% endif %} {% if row.remote_summary %}
{{ row.remote_summary }}
{% endif %}
{% csrf_token %}
{% csrf_token %}
{% else %}
{% trans "Noch keine Backup-Bundles vorhanden." %}
{% endif %}
{% endblock %}