feat: add comprehensive GitHub workflow and development tools

This commit is contained in:
Stiftung Development
2025-09-06 18:31:54 +02:00
commit ab23d7187e
10224 changed files with 2075210 additions and 0 deletions

View File

@@ -0,0 +1,160 @@
{% extends 'base.html' %}
{% block title %}{{ title }} - Benutzerverwaltung - van Hees-Theyssen-Vogel'sche Stiftung{% endblock %}
{% block content %}
<div class="row">
<div class="col-12">
<div class="d-sm-flex align-items-center justify-content-between mb-4">
<h1 class="h3 mb-0 text-gray-800">
<i class="fas fa-trash me-2 text-danger"></i>{{ title }}
</h1>
<a href="{% url 'stiftung:user_detail' user_obj.pk %}" class="btn btn-outline-secondary">
<i class="fas fa-arrow-left me-1"></i>Zurück zum Benutzer
</a>
</div>
</div>
</div>
<div class="row justify-content-center">
<div class="col-lg-8">
<div class="card shadow border-danger">
<div class="card-header bg-danger text-white">
<h6 class="m-0 font-weight-bold">
<i class="fas fa-exclamation-triangle me-2"></i>Benutzer löschen
</h6>
</div>
<div class="card-body">
<div class="alert alert-danger">
<h5><i class="fas fa-exclamation-triangle me-2"></i>Warnung!</h5>
<p class="mb-0">
Sie sind dabei, den Benutzer <strong>"{{ user_obj.username }}"</strong> permanent zu löschen.
Diese Aktion kann nicht rückgängig gemacht werden.
</p>
</div>
<!-- Benutzerinformationen -->
<div class="card mb-4">
<div class="card-header">
<h6 class="mb-0">Benutzerinformationen</h6>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-6">
<table class="table table-borderless table-sm">
<tr>
<td class="fw-bold">Benutzername:</td>
<td>{{ user_obj.username }}</td>
</tr>
<tr>
<td class="fw-bold">E-Mail:</td>
<td>{{ user_obj.email|default:"Nicht angegeben" }}</td>
</tr>
<tr>
<td class="fw-bold">Name:</td>
<td>
{% if user_obj.first_name or user_obj.last_name %}
{{ user_obj.first_name }} {{ user_obj.last_name }}
{% else %}
Nicht angegeben
{% endif %}
</td>
</tr>
</table>
</div>
<div class="col-md-6">
<table class="table table-borderless table-sm">
<tr>
<td class="fw-bold">Status:</td>
<td>
{% if user_obj.is_active %}
<span class="badge bg-success">Aktiv</span>
{% else %}
<span class="badge bg-danger">Inaktiv</span>
{% endif %}
{% if user_obj.is_staff %}
<span class="badge bg-warning ms-1">Staff</span>
{% endif %}
{% if user_obj.is_superuser %}
<span class="badge bg-danger ms-1">Superuser</span>
{% endif %}
</td>
</tr>
<tr>
<td class="fw-bold">Letzte Anmeldung:</td>
<td>
{% if user_obj.last_login %}
{{ user_obj.last_login|date:"d.m.Y H:i" }}
{% else %}
Nie angemeldet
{% endif %}
</td>
</tr>
<tr>
<td class="fw-bold">Mitglied seit:</td>
<td>{{ user_obj.date_joined|date:"d.m.Y H:i" }}</td>
</tr>
</table>
</div>
</div>
</div>
</div>
<!-- Auswirkungen der Löschung -->
<div class="card mb-4">
<div class="card-header bg-warning text-dark">
<h6 class="mb-0"><i class="fas fa-info-circle me-2"></i>Auswirkungen der Löschung</h6>
</div>
<div class="card-body">
<ul class="mb-0">
<li>Der Benutzer kann sich nicht mehr anmelden</li>
<li>Alle Berechtigungen werden entfernt</li>
<li>Audit-Log-Einträge bleiben zur Nachverfolgung erhalten</li>
<li>Verknüpfte Daten (z.B. erstellte Einträge) bleiben bestehen</li>
<li>E-Mail-Adresse und Benutzername werden für neue Benutzer wieder verfügbar</li>
</ul>
</div>
</div>
<!-- Bestätigung -->
<form method="post">
{% csrf_token %}
<div class="alert alert-warning">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="confirmDeletion" required>
<label class="form-check-label" for="confirmDeletion">
<strong>Ich bestätige, dass ich den Benutzer "{{ user_obj.username }}" permanent löschen möchte.</strong>
</label>
</div>
</div>
<hr>
<div class="d-flex justify-content-between">
<a href="{% url 'stiftung:user_detail' user_obj.pk %}" class="btn btn-outline-secondary">
<i class="fas fa-times me-1"></i>Abbrechen
</a>
<button type="submit" class="btn btn-danger" id="deleteButton" disabled>
<i class="fas fa-trash me-1"></i>Benutzer endgültig löschen
</button>
</div>
</form>
</div>
</div>
</div>
</div>
<script>
document.getElementById('confirmDeletion').addEventListener('change', function() {
document.getElementById('deleteButton').disabled = !this.checked;
});
// Additional confirmation on form submission
document.querySelector('form').addEventListener('submit', function(e) {
if (!confirm('Sind Sie absolut sicher? Diese Aktion kann nicht rückgängig gemacht werden!')) {
e.preventDefault();
}
});
</script>
{% endblock %}