{% for backup in backups %} {% with quiet_for=backup.seconds_since_signal %} {{ backup.created_at|date:'Y-m-d H:i' }} {{ backup.requested_by_username|default:'-' }} {{ backup.get_trigger_display }} {% if not backup.media_included %} {{ DLUX_STRINGS.sysbackup_data_only_badge|default:'Data only' }} {% endif %} {% if backup.status == 'completed' %}{{ backup.get_status_display }} {% elif backup.status == 'failed' %}{{ backup.get_status_display }} {% elif backup.next_attempt_at %}{{ DLUX_STRINGS.sysbackup_status_retrying|default:'Retrying' }} {% elif backup.is_active and quiet_for > backup_stall_warn_seconds %}{{ DLUX_STRINGS.sysbackup_status_no_progress|default:'No progress' }} {% else %}{{ backup.get_status_display }}{% endif %} {% if backup.passphrase_required %} {{ DLUX_STRINGS.sysbackup_passphrase_badge }} {% endif %} {% if backup.attempt_count > 1 %} {{ DLUX_STRINGS.sysbackup_attempt_short|default:'Try' }} {{ backup.attempt_count }}/{{ backup_policy.max_attempts }} {% endif %} {% if backup.status == 'completed' %}100{% else %}{{ backup.progress_percent }}{% endif %}% {% if backup.progress_message %}{{ backup.progress_message }}{% endif %} {% if backup.is_active %} {{ DLUX_STRINGS.sysbackup_last_signal|default:'Last update' }}: {{ quiet_for }}{{ DLUX_STRINGS.sysbackup_seconds_short|default:'s' }} {% if quiet_for > backup_stall_warn_seconds %} · {{ DLUX_STRINGS.sysbackup_stall_warning|default:'No progress reported. It will be marked failed after the stall timeout.' }} ({{ backup_policy.stall_timeout_minutes }}{{ DLUX_STRINGS.sysbackup_minutes_short|default:'m' }}) {% endif %} {% endif %} {% if backup.next_attempt_at %} {{ DLUX_STRINGS.sysbackup_next_attempt|default:'Next attempt' }}: {{ backup.next_attempt_at|date:'H:i' }} {% endif %} {% if backup.status == 'failed' and backup.error %} {{ backup.error|truncatechars:120 }} {% endif %} {{ backup.row_count }} {{ backup.file_count }} {{ backup.file_size|filesizeformat }} {% if backup.status == 'completed' %} {{ DLUX_STRINGS.sysbackup_download }} {% elif backup.status == 'failed' %} {% endif %}
{% csrf_token %}
{% endwith %} {% empty %} {% include 'dlux/tables/empty_row.html' with colspan=9 text=DLUX_STRINGS.sysbackup_empty %} {% endfor %}