{% extends "admin/layout.html" %} {% block title %}{{ organization.name if organization else organization_id }} — Tuxflotte Admin{% endblock %} {% block admin_content %}

← Organisationen

{{ organization.name if organization else organization_id }}

{% if aktiver_tab == "organisationsdaten" %}
{% endif %} {% if aktiver_tab == "hostname" %}

Legt fest, wie neu aktivierte Geräte dieser Organisation automatisch benannt werden ("<Präfix>-<Nummer>"). Leerer Präfix = keine Konvention, der vom Gerät selbst gemeldete Hostname bleibt maßgeblich. Wirkt nur bei genuin neuen Geräten, nie bei einer erneuten Aktivierung eines bereits bekannten Geräts.

{% if hostname_konvention and hostname_konvention.praefix %}

Nächste sequenzielle Nummer: {{ hostname_konvention.naechste_sequenz }} (nur relevant im sequenziellen Modus)

{% endif %}
{% endif %} {% if aktiver_tab == "diagnosezugang" %}

Richtet auf Geräten, die mit einem danach erstellten Installationsmedium installiert werden, einen root-Zugang ein (lokal an der Konsole und per SSH). Nur für die Fehlersuche gedacht. Das Passwort ist ausschließlich hier im Admin-Bereich sichtbar, auf das Installationsmedium gelangt nur sein Hash. Ausschalten wirkt nur auf neu erstellte Installationsmedien – bereits installierte Geräte behalten den Zugang bis zur Neuinstallation.

{% if diagnosezugang.aktiv %}

Status: aktiv

Benutzer: root
Passwort: {{ diagnosezugang.passwort or "— (nicht lesbar)" }}

Ein neues Passwort gilt nur für danach erstellte Installationsmedien – vorhandene Medien und Geräte behalten das alte.

{% else %}

Status: aus

{% endif %}
{% endif %} {% if aktiver_tab == "aktivierungscodes" %}
{% for ac in activation_codes %} {% endfor %}
CodeStatusAngelegt
{{ ac.code }} {{ "aktiv" if ac.active else "inaktiv" }} {{ ac.created_at }}
{% endif %} {% if aktiver_tab == "bereitstellungsvorlagen" %}
{% for v in bereitstellungsvorlagen %} {% endfor %}
BezeichnungWorkspaceBackendPartitionierungStandard
{{ v.label }} {{ v.workspace.name }} {{ v.backend.name }} {{ v.backend.version }} {{ v.partitioning.root_filesystem }} {% if v.partitioning.scheme == "custom" and v.partitioning.extra_partitions %} + {% for p in v.partitioning.extra_partitions %}{{ p.mountpoint }} ({{ p.percent }}%, {{ p.filesystem }}){{ ", " if not loop.last else "" }}{% endfor %} {% endif %} {{ "ja" if v.is_default else "nein" }}
{% if vorlage_fehler %}

{{ vorlage_fehler }}

{% endif %} Neue Bereitstellungsvorlage anlegen
Eigene Partitionen (optional) - Anteil in % der gesamten Platte, Rest geht an Root. Ohne Haken wird nur eine Root-Partition angelegt. {% for name in ["home", "var", "usr"] %}
{% endfor %}
{% endif %} {% if aktiver_tab == "konten" %}

Plattform-Admin-Konten (organisationsübergreifend) werden getrennt unter Admin-Accounts verwaltet, tauchen hier absichtlich nicht auf.

{% for b in benutzer %} {% endfor %}
E-MailOrg-AdminAngelegt
{{ b.email }} {{ "ja" if b.ist_organisationsadmin else "nein" }} {{ b.created_at }}
Neues Konto anlegen
{% endif %} {% if aktiver_tab == "struktur" %} {# Struktur & Workspaces (Workspace-Creator neu, Schritt F, 07.10.2026): Workspace an der OE, vererbt nach unten. Die Distro-Konfliktregel prüft anode beim Speichern. #}
{% if request.query_params.get("fehler") %}

{{ request.query_params.get("fehler") }}

{% endif %} {% if request.query_params.get("hinweis") %}

{{ request.query_params.get("hinweis") }}

{% endif %}

Ein Workspace an einer OE gilt für alle Geräte darin und in ihren Unter-OEs (außer eine Unter-OE hat einen eigenen). Geräte müssen zur Distro des Workspace passen – sonst wird das Speichern mit Begründung abgelehnt. Gruppen ergänzen nur.

{% macro oe_knoten(oe, oes, tiefe) %}
{{ oe.name }}{% if oe.ist_standard %} (Standard){% endif %} · {{ oe.anzahl_geraete }} Gerät(e){% if oe.distros %}: {{ oe.distros | join(", ") }}{% endif %}
{% if oe.workspace %} Workspace: {{ oe.workspace.name }} ({{ oe.workspace.distro }}, {{ "automatisch neueste Version" if oe.workspace.automatisch else "auf v" ~ oe.workspace.version ~ " gepinnt" }}) {% elif oe.wirksamer_workspace %} Workspace geerbt: {{ oe.wirksamer_workspace.name }} von {{ oe.wirksamer_workspace.geerbt_von }} {% else %} Kein Workspace – es gilt der Workspace der Installation {% endif %}
Workspace ändern · Unter-OE anlegen
{% for kind in oes | selectattr("parent_id", "equalto", oe.id) %}{{ oe_knoten(kind, oes, tiefe + 1) }}{% endfor %} {% endmacro %} {% for wurzel in organisationseinheiten | selectattr("parent_id", "equalto", none) %}{{ oe_knoten(wurzel, organisationseinheiten, 0) }}{% endfor %}
{% endif %} {% if aktiver_tab == "gruppen" %}

Querschnitts-Gruppen (z.B. Lehrer/Schulleitung) — ein Gerät kann in mehreren gleichzeitig sein.

{% if not gruppen %}

Keine Gruppen angelegt.

{% else %}
{% for gruppe in gruppen %} {% endfor %}
Name
{{ gruppe.name }} Verwalten
{% endif %}
Neue Gruppe anlegen
{% endif %} {% endblock %}