atr/blueprints/admin/templates/delete-release.html (47 lines of code) (raw):
{% extends "layouts/base.html" %}
{% block title %}
Delete release ~ ATR Admin
{% endblock title %}
{% block description %}
Permanently delete a release and all associated data.
{% endblock description %}
{% block content %}
<h1>Delete release</h1>
<div class="alert alert-danger" role="alert">
<strong>Warning:</strong> This action is irreversible. Deleting a release will permanently remove its database records, including tasks and check results, and its associated files from the filesystem.
</div>
<form method="post" novalidate>
{{ form.csrf_token }}
<div class="mb-3">
<label class="form-label">Select releases to delete:</label>
{% if releases %}
<div class="list-group overflow-y-auto border rounded">
{% for release in releases %}
<label class="list-group-item list-group-item-action d-flex gap-3">
<input class="form-check-input flex-shrink-0"
type="checkbox"
name="releases_to_delete"
value="{{ release.name }}" />
<span>
<strong>{{ release.name }}</strong> ({{ release.project.display_name }}, Phase: {{ release.phase.value.upper() }})
</span>
</label>
{% endfor %}
</div>
<div class="form-text">Select one or more releases to delete permanently.</div>
{% else %}
<p class="text-muted">No releases found in the database.</p>
{% endif %}
</div>
<div class="mb-3">
{{ form.confirm_delete.label(class="form-label") }}
{{ form.confirm_delete(class="form-control" + (" is-invalid" if form.confirm_delete.errors else "") , placeholder="DELETE") }}
{% if form.confirm_delete.errors %}
<div class="invalid-feedback">{{ form.confirm_delete.errors[0] }}</div>
{% else %}
<div class="form-text">Please type DELETE exactly to confirm deletion.</div>
{% endif %}
</div>
{{ form.submit(class="btn btn-danger") }}
</form>
{% endblock content %}