Thomas Stallinger ea92b3c54c feat: Gruppen-Selfservice im Kundenportal
Kund:innen können jetzt eigene Gruppen selbst verwalten (/gruppen) statt
nur intern über /admin/kunden - reiner Kundenplattform-Zusatz, keine
Backend-Änderung nötig (anode-API war bereits organisationsgebunden und
generisch aufgebaut, siehe ADR-0012). Admin-Zugang bleibt zusätzlich
bestehen (Support/Onboarding), beide teilen sich dieselbe anode-API.

Neuer Router routers/gruppen.py (eng an struktur.py angelehnt, gleiches
Besitz-Validierungsmuster), Templates gruppen_liste/gruppe_detail
(Merkmale-Tristate-Editor + Geräte-Mitgliedschaft, wie
admin/gruppe_detail.html)/gruppe_umbenennen/gruppe_loeschen.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-12 20:57:48 +02:00

38 lines
1.4 KiB
HTML

<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{% block title %}Tuxflotte{% endblock %}</title>
<link rel="stylesheet" href="/static/pico.min.css">
<style>
.state-present { color: var(--pico-ins-color); font-weight: 600; }
.state-absent { color: var(--pico-muted-color); }
.optionen label { font-weight: normal; }
td form { margin-bottom: 0; }
</style>
</head>
<body>
<header class="container">
<nav>
<ul><li><strong><a href="/geraete">Tuxflotte Kundenplattform</a></strong></li></ul>
{% if user %}
<ul>
<li><a href="/geraete">Geräte</a></li>
<li><a href="/struktur">Struktur</a></li>
<li><a href="/gruppen">Gruppen</a></li>
<li><a href="/installationsmedium">Installationsmedium</a></li>
<li><a href="/organisation">Organisation</a></li>
{% if user.is_superuser %}<li><a href="/admin/technik">Admin</a></li>{% endif %}
<li>{{ user.email }}</li>
<li><a href="/logout" role="button" class="secondary outline">Abmelden</a></li>
</ul>
{% endif %}
</nav>
</header>
<main class="container">
{% block content %}{% endblock %}
</main>
</body>
</html>