100 Commits
Author SHA1 Message Date
adminandClaude Opus 5.5 c4aca04ddb Kopfzeile: Anmeldename als Knopf zu „Mein Konto“
Kunden landen auf /organisation#konto (Abschnitt klappt auf), root auf
/admin/accounts#konto. Auf dem Handy bleibt nur das Symbol.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 09:26:17 +01:00
adminandClaude Opus 5.5 8fdd71c401 Kopfzeile: Lupe, Hilfe und Abmelden auf Höhe des Darkmode-Schalters
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 09:24:55 +01:00
adminandClaude Opus 5.5 acd0406181 Anleitungen im Portal unter /hilfe und in der Suche
Das Portal zeigt die Anleitungen aus dem Repo manuals selbst an
(Klon unter /opt/tuxflotte-manuals, KUNDENPLATTFORM_MANUALS_DIR) statt
auf git.tuxflotte.de zu verlinken; geänderte Dateien werden ohne
Neustart neu eingelesen. Verweise zwischen den Anleitungen zeigen auf
/hilfe, Anker wie bei Gitea, kein Roh-HTML.

Die Suche hat einen neuen Bereich "Anleitungen" (Abschnitte nach
Überschriften, Neuigkeiten/Roadmap nachrangig), Funktionstreffer der
Kunden verlinken die passende Anleitung. Kopfzeile: Hilfe-Knopf neben
der Lupe; der Secure-Boot-Hinweis verlinkt jetzt /hilfe.

Neue Abhängigkeit Markdown 3.11.2.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 09:19:11 +01:00
adminandClaude Opus 5.5 86a68e3cd7 Rückfrage vor dem De-Provisionieren eines Geräts
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 08:51:49 +01:00
adminandClaude Opus 5.5 c160233d08 Suche in der Kopfzeile, Admin-Workspaces je Organisation aufklappbar
Lupe neben dem Anmeldenamen führt zu /suche: Funktionen (fester Index in
routers/suche.py), Geräte, Merkmale und Apps, beim Admin auch
Organisationen und Workspaces. Workspace-Creator › Workspaces gruppiert
nach Organisation (tuxflotte offen) mit Filter nach Name, Organisation,
Distro und Vorlagen.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 07:38:01 +01:00
adminandClaude Opus 5.5 9d6a650bd1 Aktivitäten: nur die letzten 30 Tage, Ältere über einen Link am Ende
Gilt für das Kunden-Dashboard und Organisationen › Aktivitäten.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 07:38:01 +01:00
adminandClaude Opus 5.5 bb43c42248 Installationsmedium aufladen: höchstens 90 Tage ab heute
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 14:29:10 +01:00
adminandClaude Opus 5.5 1922741a4f Installationsmedium höchstens 90 Tage, Aktivierungscodes ohne "unbegrenzt"
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 08:26:44 +01:00
adminandClaude Opus 5.5 f35273b517 Unterrichtssteuerung: Veyon-Schlüssel erneuern, mit Rückfrage
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 07:35:13 +01:00
adminandClaude Opus 5.5 3fafe1df75 Home-Verschlüsselung: Einstellung je Organisation, Hinweis und Haken beim Einrichten des Kontos
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 06:45:11 +01:00
adminandClaude Opus 5.5 757ed1849b Favicon: TuX weiß auf blauem Quadrat
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 20:36:04 +01:00
adminandClaude Opus 5.5 c3df83ed2c Favicon: 32/192-Pixel-PNG zuerst, ICO mit 16 bis 64 Pixeln
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 20:34:51 +01:00
adminandClaude Opus 5.5 ddc54fe95b Favicon: TuX in dünnerer Schrift, zusammengerückt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 20:31:44 +01:00
adminandClaude Opus 5.5 ea32ac4fa8 Favicon: Schriftzug Tux statt Pinguinkopf
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 20:24:54 +01:00
adminandClaude Opus 5.5 9e24e1fa89 Favicon: Pinguinkopf aus dem Logo
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 20:19:40 +01:00
adminandClaude Opus 5.5 2694360e53 Zweite Navigationsebene: Einträge gleichmäßig verteilt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 20:07:30 +01:00
adminandClaude Opus 5.5 beffbdb0ac Zweite Navigationsebene: Balken über die ganze Inhaltsbreite
Pico macht nav zu einem Flex-Container (Balken nur so breit wie die
Einträge) und zieht das erste ul nach links.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 20:06:34 +01:00
adminandClaude Opus 5.5 1ddb4535e2 Zweite Navigationsebene: Balken so hoch wie die Titelzeile aufklappbarer Bereiche
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 20:04:43 +01:00
adminandClaude Opus 5.5 ff46d0a8a8 Zweite Navigationsebene: Schrift im Hellblau der aufklappbaren Bereiche
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 20:02:30 +01:00
adminandClaude Opus 5.5 a2d6e1e06e Zweite Navigationsebene: Hellblau etwas heller
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 19:59:53 +01:00
adminandClaude Opus 5.5 67107fbc41 Zweite Navigationsebene: Hellblau kräftiger (wirkte weiß)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 19:58:44 +01:00
adminandClaude Opus 5.5 b94cbbc14e Zweite Navigationsebene auf blauem Grund, Einträge hellblau, aktiver weiß, fett, unterstrichen
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 19:58:13 +01:00
adminandClaude Opus 5.5 698720ff3c Geräte: Hinweis Secure Boot und Firmware-Passwort (Prüfroutine)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 18:47:05 +01:00
adminandClaude Opus 5.5 3255900f3f Merkmal-Optionen vorausgefüllt und bei aktivem Merkmal änderbar, Kiosk-Felder
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 13:52:15 +01:00
adminandClaude Opus 5.5 99d02d5c29 Katalog: Icons für Merkmale holen (einzeln und alle fehlenden)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 09:55:14 +01:00
adminandClaude Opus 5.5 ff8bf3b2eb Organisation: Abschnitte aufklappbar mit Stand im Kopf
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 09:04:48 +01:00
adminandClaude Opus 5.5 6aee658a95 Auftragskatalog aufklappbar, Aufklapp-Köpfe leicht hinterlegt
Abschnitte (Standort/Zweck, Debug-Modus, Veyon, Personalisierung,
Einzelgerät) und Merkmal-Kategorien starten eingeklappt; die Köpfe
zeigen den aktuellen Stand, Merkmal-Suche über alle Kategorien.
Aufklapp-Köpfe seitenweit leicht in der Primärfarbe hinterlegt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 08:55:22 +01:00
adminandClaude Opus 5.5 9724b5e784 Admin: Hinweis auf den abgeleiteten Gerätenamen beim Anlegen einer Organisation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 17:33:11 +01:00
adminandClaude Opus 5.5 f736b42ae7 Admin: Organisation archivieren mit Bestätigung durch den Namen
Deaktiviert die Kunden-Konten der Organisation (benutzer.is_active), auch
laufende Sitzungen. Benötigt provisioning-server mit Migration 0076.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 17:28:33 +01:00
adminandClaude Opus 5.5 2d1b45e973 Einstieg Schritt 6: Unterrichtssteuerung (Veyon) am Standort/Zweck einschalten
Raum bleibt der Standort/Zweck (Schlüssel, Raumliste je OE). Auf der
Einstellungsseite des Standorts: Veyon einschalten (ohne Häkchen) und
Lehrergerät(e) ankreuzen; die kommen in die Gruppe "Lehrergeräte" (eine je
Organisation, Häkchen veyon_lehrer gesetzt), alle anderen dort sind
Schülergeräte. Ausschalten nimmt die Lehrergeräte aus der Gruppe. Hinweis
auf die alte Falle (Häkchen am Standort), Speichern behebt sie.
Geräteseite: "Als Lehrergerät festlegen" / "Kein Lehrergerät mehr".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 16:44:35 +01:00
adminandClaude Opus 5.5 fed0e9e48a Personalisierung: deutlicher Hinweis zur sofortigen Sperre, Sperrgrund beim Konto
Befund Erstkontakt 25.10.2026 (Bildschirmschoner ließ sich nicht mehr
entsperren). Benötigt provisioning-server d76fdad (gesperrt_durch_einladung).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 16:32:16 +01:00
adminandClaude Opus 5.5 8e2df14a5a Workspace-Assistent: Standort/Zweck als Optionsfelder, Vorauswahl neuer Standort
Befund Erstkontakt 25.10.2026: Der Workspace wurde angelegt, der neue
Standort nicht; die Auswahlliste stand unbemerkt auf "Später entscheiden".
Jetzt drei Optionsfelder mit "Neuen Standort/Zweck anlegen" vorausgewählt
und Namensfeld direkt darunter; ein eingetragener Name legt den Standort
auch ohne passende Wahl an.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 16:22:25 +01:00
adminandClaude Opus 5.5 3613331e8c Einstieg Schritt 5: Workspace-Assistent mit Distribution zuerst und Standort/Zweck
Assistent: 1 Distribution (Kurzcharakteristik, für Kunden Hinweis ohne
eingerichtete Installation, Debian vorerst nur Admin), 2 Name und
Standort/Zweck (bestehend, neu oder später; Namensvorschlag), 3-5 nur
Einträge der gewählten Distro (Wechsel wählt ab, mit Hinweis), 6 Prüfen.
Speichern weist im Kundenportal gleich zu, Fehler der Zuweisung stehen auf
der Workspace-Seite. Distro-Leiste und Konfliktkarten entfallen; behebt
nebenbei den Absturz der Zusammenfassung im Kundenportal (Eigentümerfeld
gibt es nur im Admin). Versionsliste und Version festhalten unter
Erweitert; Link "neuen Workspace für … erstellen" bei jedem Standort.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 16:10:56 +01:00
adminandClaude Opus 5.5 6e79baedf6 Einstieg Schritt 7: Einladung zur Personalisierung ohne Seitenwechsel
Geräteseite: Formular immer da; fehlt "Personalisierung möglich", kommt
das Gerät beim Senden in die Gruppe "Personalisierte Geräte" (eine je
Organisation, bei Bedarf angelegt, Merkmal aktiv). Gruppen- und
Standortseite: mit aktivem Merkmal eine Liste der Geräte mit E-Mail-Feld,
nach dem Senden zurück auf dieselbe Seite. Gefunden im Erstkontakt-Probelauf.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 15:58:51 +01:00
adminandClaude Opus 5.5 e44b1b64b8 Einstieg Schritt 4: Erste Schritte auf dem Dashboard, Navigation in Reihenfolge des Wegs, Standort/Zweck statt OE
Kunden landen nach der Anmeldung auf dem Dashboard; der Assistent
verschwindet mit dem ersten Gerät online, danach ein Hinweis auf
Standorte/Zwecke, solange es nur "Neue Geräte" gibt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 12:47:35 +01:00
adminandClaude Opus 5.5 ecb5c9b63e Einstieg Schritt 3: Medium fragt nur WLAN-Weg, Anzahl, Gültigkeit; Installation aus dem Standort
WLAN der Organisation, anderes WLAN oder Kabel; Standort/Zweck nur bei
Auswahl; Offline-Medium und Neuinstallation unter Erweitert;
Installationsprofil nur für Tuxflotte-Admins (sonst wählt der Server).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 12:44:19 +01:00
adminandClaude Opus 5.5 bb5229e05e Einstieg Schritt 2: WLAN der Organisation auf der Organisationsseite, Übernahme vom Medium
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 12:41:06 +01:00
adminandClaude Opus 5.5 3662df9e2a Einstieg Schritt 1: Art der Organisation, Ausrollstufen Vorab/Testing
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 12:36:56 +01:00
adminandClaude Opus 5.5 c6861d15a9 Schlüsselbund-Hinweis gekürzt: WLANs bleiben, nur Browser-Passwörter betroffen
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 11:30:41 +01:00
adminandClaude Opus 5.5 dbb39a7d6f Schlüsselbund-Hinweis: nur selbst eingegebene WLANs, Org-WLAN ausdrücklich nicht betroffen
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 11:17:38 +01:00
adminandClaude Opus 5.5 84735dab5d Passwort vergessen: Hinweis zu Schlüsselbund und WLAN hervorgehoben (ADR-0041, 25.10.2026)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 11:15:38 +01:00
adminandClaude Opus 5.5 7d758fb0f2 Passwort vergessen: Konto und Gerätename aus dem QR-Code (ADR-0041, 25.10.2026)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 10:36:06 +01:00
adminandClaude Opus 5.5 c3683b0351 Passwort vergessen als öffentliche Seite (ADR-0041, 24.10.2026)
/personalisierung/vergessen ohne Gerät fragt die Adresse ab, Antwort immer
gleich, Begrenzung je IP. Kiosk-Aufruf mit Gerät und Token bleibt.
Einladungsmail, Stand-Seite und Admin-Reset verweisen auf die Seite.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 11:09:57 +02:00
adminandClaude Opus 5.5 8937c28028 Personalisierung per Einladung statt Aktivierungscode (ADR-0041, 24.10.2026)
Geräte-Info: Adressfeld (Domänenliste, nur mit Merkmal), erneut senden,
zurückziehen. Öffentlich: Einladungsseite mit Namensvorschlag, Stand-Seite
mit Selbstaktualisierung, Hinweis für den Kiosk älterer Rollen.
Code-Formular und Bestätigungsseiten entfernt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 10:52:15 +02:00
adminandClaude Opus 5.5 4e701cdf82 Struktur: Meldung zur Workspace-Zuweisung bei der OE
Die Distro-Ablehnung stand oben auf der Seite und wurde übersehen (Befund
Liebherr 23.10.2026). Jetzt erscheint sie im aufgeklappten Formular der
OE, die Seite springt dorthin; ebenso im Admin-Reiter. Kundenseitig zeigt
jede OE zusätzlich Gerätezahl und Distro.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 10:44:26 +02:00
adminandClaude Opus 5.5 ff7f9d314e OE-Wechsel auf die Geräteseite verlegt
Im fest ausgerichteten Aktionen-Menü klappte die Auswahlliste wieder zu,
abgeschickt wurde die alte OE (Liebherr-84, 23.10.2026). Jetzt auf der
Geräteseite (#oe), Erfolg und Distro-Ablehnung erscheinen dort. Der
Admin-Weg zeigt die Ablehnung jetzt ebenfalls an.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 10:00:45 +02:00
adminandClaude Opus 5.5 8cc98698e3 Workspace-Creator für Kunden je Organisation freischaltbar
- Freischaltung je Organisation (Portal-Migration 0010, alle bisherigen
  Organisationen = Testschulen frei), Schalter unter Admin › Organisation ›
  Organisationsdaten
- Kunden-Creator auf den Stand des Admin-Creators: Assistent mit Distro,
  Entwurf/Veröffentlichen, Webapps, Standardbrowser, Kopie, Löschen;
  gemeinsame Vorlagen _workspace_detail.html/_workspace_assistent.html
- Vorlagen von tuxflotte nur lesend, ohne fremde Nutzung; Kopie immer in
  die eigene Organisation
- Organisation › Struktur: Workspace je OE zuweisen

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 07:57:07 +02:00
adminandClaude Opus 5.5 90e7b967c4 GUI-Runde 23.10.: Organisation mit sieben Reitern, Katalog auf einer Seite, Medien verwalten
- Admin › Organisation: Hostnamenkonvention und Ressourcen als aufklappbare
  Abschnitte der Organisationsdaten, Aktivierungscodes bei den
  Bereitstellungsvorlagen (mit Abgrenzung Vorlage/Workspace), Flows oben
  auf Aktivitäten; alte Adressen leiten weiter
- Katalog: Kategorien und Webapp-Vorlagen aufklappbar unter den Einträgen,
  keine vierte Navigationsebene mehr
- Kunden-Dashboard: Läufe ohne Fehler je Gerät zusammengefasst, aufklappbar
- Ausgegebene Medien: Deaktivieren und Löschen
- Geräteliste: Tooltips zu De-Provisionieren und Löschen, Löschtext ehrlich
- Inline-Skripte (Aktivitäten-Filter, Katalog-Suche) in statische Dateien:
  die CSP (script-src 'self') hatte sie blockiert

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 07:49:53 +02:00
adminandClaude Opus 5.5 65734a7ed7 Dashboard: Geräte-Ampel oben, Admin zeigt Änderungen an der Plattform
Flotten-Gesundheit als Ampel (Zahlenkacheln Handeln/Beobachten/In
Ordnung, je Gerät ein Kästchen mit Tooltip und Link aufs Protokoll,
Liste der auffälligen Geräte mit Grund), Statusfarben aus der
Dataviz-Palette, immer mit Symbol und Text. Ersetzt Textlisten und den
Ring "Gerätezustand". Admin-Dashboard: "Änderungen an der Plattform"
(Deploy, Migration, Boot-Medium, Stände vorab/stabil) statt Agent-Läufen.
Braucht provisioning-server 844faa2 mit Migration 0071.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 17:25:47 +02:00
adminandClaude Opus 5.5 bae0bd9c35 Ausgegebene Medien auf der Installationsmedium-Seite, ältere Sessions in Flows eingeklappt
Kundenseite: aufklappbarer Abschnitt "Ausgegebene Medien" mit allen
Enrollment Sessions und Status (aktuell, gültig, aufgebraucht,
abgelaufen, widerrufen). Admin-Flows: neueste Session offen, ältere
unter "Ältere Sessions" mit Zahl der noch gültigen. Kein automatisches
Ungültigmachen (Entscheidung 22.10.2026).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 16:57:43 +02:00
adminandClaude Opus 5.5 126ea892a4 Organisation › Aktivitäten: je Tag aufklappbar, fehlerfreie Läufe zusammengefasst, Filter
Tage (Ortszeit) als aufklappbare Abschnitte, der neueste offen.
Agent-Läufe ohne Fehler je Gerät und Tag in einer Zeile mit Zahl der
Läufe; Fehler und Installationen einzeln. Filter nach Gerät und Art
(Nur Fehler, Installationen, Agent-Läufe). Abruf 500 statt 100.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 16:56:01 +02:00
adminandClaude Opus 5.5 f0389f1b48 Katalog: Übersicht, Merkmale bearbeiten und Distro-Abdeckung auf einer Seite
Eine Seite "Einträge" statt drei: nach Bereich und Kategorie aufklappbar,
je Zeile Name, Key, Distro-Kennzeichen (Tooltip mit Ansible-Rolle) und
"Bearbeiten" für Merkmale und Webapp-Vorlagen. Suche und Filter "Fehlt
auf <Distro>" ersetzen die frühere Matrix. Alte Adressen leiten auf den
Katalog, die POST-Ziele bleiben.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 16:54:21 +02:00
adminandClaude Opus 5.5 f39ff4aa69 Installationsmedium: ohne Medium gleich Erstellen, Kontingent und Gültigkeit als Abschnitt unter Medien
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 15:27:56 +02:00
adminandClaude Opus 5.5 829dc34167 Spaltenfilter: Sortieren und Alle an/aus im Menü, Menü fest am Fenster (nicht mehr abgeschnitten)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 15:27:00 +02:00
adminandClaude Opus 5.5 416771af55 Webapps standardmäßig nur im Menü, Desktop-Symbol per Häkchen
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 15:01:53 +02:00
adminandClaude Opus 5.5 40046a01be Geräte: Weg zum Ansible-Stand anzeigen (Admin-Liste, Hardware-Seite, ADR-0046)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 09:40:42 +02:00
adminandClaude Opus 5.5 e52e7f66b2 Hilfetexte OE/Gruppen an Server-Regel angleichen, Portal durchgehend mit du
- Struktur/Gruppen: OE-Kette und Gruppen sind gleichberechtigte Stimmen,
  aktiv gewinnt auch gegenüber der OE (ADR-0012, resolve_katalog_overrides)
- Anrede wie in manuals: du statt Sie, auch in den Passwort-Mails

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 19:10:48 +02:00
adminandClaude Opus 5.5 ad87f4ab5d Merge branch 'neustart-warten'
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 10:37:49 +02:00
adminandClaude Opus 5.5 bc25752af0 Personalisierung: Hinweis 'nach dem Neustart bis zu 2 Minuten warten' in Seiten und Mails
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 10:37:49 +02:00
adminandClaude Opus 5.5 e29f6df46f Merge branch 'passwort-vergessen'
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 10:30:17 +02:00
adminandClaude Opus 5.5 c4b52e2da4 Personalisierung: Seiten 'Passwort vergessen?' (Kiosk) und 'Neues Passwort' (Mail-Link); Admin-Reset ohne Änderungszwang
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 10:27:49 +02:00
adminandClaude Opus 5.5 d02184df64 Geräteseite: roter Hinweis 'Jetzt notieren' bei einmalig angezeigtem Code und Passwort
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 10:13:42 +02:00
adminandClaude Opus 5.5 1de871a721 Merge branch 'passwort-reset'
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 10:00:22 +02:00
adminandClaude Opus 5.5 25339f40cf Geräteseite: Passwort zurücksetzen für persönliche Konten (vorläufiges Passwort, einmal angezeigt)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 09:57:55 +02:00
adminandClaude Opus 5.5 7542c2135c Personalisierung: Hinweis auf Passwort-Reset entfernt (Funktion fehlt noch)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 09:46:27 +02:00
adminandClaude Opus 5.5 c2beb54330 Merge branch 'personalisierung-merkmal'
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 17:02:33 +02:00
adminandClaude Opus 5.5 b076e9959f Personalisierung Schritt 3: Konten sperren/entsperren, Meldungen des Geräts
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 15:56:51 +02:00
adminandClaude Opus 5.5 1f38549c02 Personalisierung Schritt 2: Formular am Gerät, Bestätigung per Mail, Code in der Geräte-Info
Öffentliches Formular /personalisierung (Code, dann E-Mail mit
Domänenvorgabe, Anmeldename, Passwort; ?kiosk=1 zeigt Abmelden), Passwort
nur als SHA-512-crypt an anode, Bestätigungslink per mail_ausgang (GET
zeigt Knopf, erst POST bestätigt). Geräte-Info: Code erzeugen (einmalig
angezeigt), Kästchen „Bestehenden Zugang behalten“, zurückziehen, Verlauf.
Geräteliste: Spalte Personalisiert, Schuladressen sichtbar. Organisation:
E-Mail-Domänen.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 15:32:08 +02:00
adminandClaude Opus 5.5 cd747e4992 Merkmal-Seiten: Kategorie-Koepfe blau, fett, 2 pt groesser
Nutzer-Wunsch 15.10.2026. In Chromium gemessen: 18 -> 20,7 px, 700,
--pico-primary; Zaehler 'aktiv: n von m' normal und gedaempft.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 14:51:00 +02:00
adminandClaude Opus 5.5 22dffa1c73 Merkmal-Seiten: Aktiv/Inaktiv-Knoepfe kompakt (wie .klein)
Nutzer-Wunsch 15.10.2026. Hoehe in Chromium gemessen: 59 -> 34 px.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 14:50:32 +02:00
adminandClaude Opus 5.5 8b5127e8d2 Merkmal-Seiten: Kategorien eingeklappt, Suche ueber alle Kategorien
Nutzer-Wunsch 15.10.2026: Gruppe/OE (Kunden- und Admin-Seite) zeigten alle
Kategorien offen, man scrollte weit. Jetzt <details> je Kategorie mit
'aktiv: n von m' im Kopf, ein Suchfeld filtert ueber alle Kategorien und
klappt Treffer auf (static/merkmal-kategorien.js); offene Kategorien
bleiben nach dem Neuladen (Aktiv/Inaktiv) offen. Verhalten in headless
Chromium geprueft.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 14:44:31 +02:00
admin 612d743b71 Merge branch 'veyon-lehrer' 2026-10-15 14:06:46 +02:00
adminandClaude Opus 5.5 51c872c24f Optionen fileserver: gemeinsame Ablage (Freigabename, Anzeigename, Schreibzugriff)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 13:58:05 +02:00
adminandClaude Opus 5.5 3a7d7a424b Veyon-Lehrer-Checkbox; Admin-Seiten fuer Gruppe und OE nehmen Merkmal-Optionen an
optionen_felder: veyon_lehrer (Checkbox, Entscheidung 15.10.2026).
Bisher konnte der root-Admin auf den Admin-Seiten fuer Gruppe/OE keine
Optionen setzen (Aktiv-Formular ohne Felder, Route ohne Formular) - betraf
auch Org-WLAN. Jetzt wie auf der Kundenseite: Felder im Aktiv-Formular,
parse_optionen_form, optionen an die API.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 13:57:21 +02:00
adminandClaude Opus 5.5 ccf7b547a7 Org-Ressourcen: Seite Organisation > Ressourcen und Admin-Reiter
Kunden-Admins pflegen Mail, Nextcloud, ownCloud, WebDAV, SMB und Web-Proxy
ihrer Organisation (Formulare aus den Typ-Definitionen des Servers, keine
Zugangsdaten), Wirkung fuer die ganze Org, OEs oder Gruppen. Unterseite
erscheint nur fuer freigeschaltete Organisationen; root pflegt immer.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 13:02:51 +02:00
adminandClaude Opus 5.5 a104a026c0 Optionen fuer Merkmal org-wlan: SSID und Passwort
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 18:31:30 +02:00
adminandClaude Opus 5.5 b580d10660 Installationsmedium: Sicherheitshinweis zum WLAN-Passwort, offenes WLAN waehlbar
Hinweis laut Entscheidung vom 13.10.2026 (Roadmap Schritt 2). Dabei
behoben: Ein gespeichertes Passwort wurde bei leerem Feld immer
weiterverwendet, auch fuer ein offenes Netz, eine andere SSID oder ohne
WLAN. Jetzt verworfen bei "Offenes WLAN", leerer SSID oder neuer SSID
ohne neues Passwort.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 10:27:15 +02:00
adminandClaude Opus 5.5 12df7a9495 Geraete: Agent-Fassung (Pruefsumme) in Admin-Liste und Hardware-Ansicht
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 09:46:13 +02:00
adminandClaude Opus 5.5 b669800856 Organisationen: Kundengruppe beim Anlegen und in den Organisationsdaten waehlen
Vorauswahl Schule beim Anlegen, Spalte Kundengruppe in der Liste.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 08:50:43 +02:00
adminandClaude Opus 5.5 b5ef8e0a9a Organisationsdaten: Ausrollstufe (stabil/vorab) waehlen
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 16:57:20 +02:00
adminandClaude Opus 5.5 632319aac6 Workspace-Creator: Standardbrowser je Workspace waehlen
Auswahl im Entwurf, Anzeige in der veroeffentlichten Version und in der
Wirkungsvorschau. Die Brave-Option "Als Standardbrowser festlegen" an OE
und Gruppe entfaellt dafuer.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 15:10:30 +02:00
adminandClaude Opus 5.5 18a8cd7ea6 GUI Schritt 1: Aktionen-Menue am Fenster ausgerichtet, Reiterleiste, Konten aendern
- Aktionen-Menue in den Geraetelisten oeffnet nach oben, wenn unten kein
  Platz ist, bleibt im Fenster und wird unter 1024 px nicht mehr vom
  scrollenden Hauptbereich abgeschnitten (static/dropdown-platz.js).
- Flows-Seite nutzt dieselbe Reiterleiste wie die Organisationsseite; ihre
  eigene Kopie kannte Struktur, Diagnosezugang und Aktivitaeten nicht.
- Dashboard: "Erstes Geraet aktiv" zeigte auf /flotte (gibt es nicht),
  jetzt /geraete.
- Kundenkonten: E-Mail und Org-Admin-Zuweisung nachtraeglich aendern.
- Merkmale bearbeiten: Tabelle kompakt, Knopf nicht mehr abgeschnitten.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:55:12 +02:00
adminandClaude Opus 5.5 cc356d7c16 Hostnamenkonvention: Text an Standardpräfix tuxflotte angepasst
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 13:47:59 +02:00
adminandClaude Opus 5.5 6e44295c18 Sitzung an den Passwortstand binden
Das Sitzungs-JWT traegt einen Abdruck des Passwort-Hashes; jeder
Passwortwechsel (Reset per Mail, Selbstaenderung, Skript) beendet damit
alle bestehenden Sitzungen des Kontos. Die Selbstaenderung stellt der
eigenen Sitzung ein neues Cookie aus. Alte Tokens ohne Abdruck gelten
nicht mehr - nach dem Ausrollen einmalige Neuanmeldung fuer alle.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 21:08:05 +02:00
adminandClaude Opus 5.5 8ef9c719e1 Passwort-Reset per Mail fuer Kundenkonten
Login-Seite verlinkt 'Passwort vergessen?'. Der Link in der Mail gilt
eine Stunde und nur einmal (fastapi-users-Token). Gleiche Antwort fuer
bekannte und unbekannte Adressen, Begrenzung je Adresse und IP.
Plattform-Admins (is_superuser) sind ausgenommen.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 21:01:25 +02:00
adminandClaude Opus 5.5 7a7450c829 Mailversand ueber Ausgangstabelle (ADR-0041)
mail.py reiht Mails in mail_ausgang ein (Migration 0009), eine
Versandschleife im Dienst liefert sie per SMTP mit Anmeldung ein und
wiederholt bei Fehlern. Voreinstellung ist Trockenlauf; das Passwort
kommt als systemd-Credential. Dazu scripts/testmail.py und Tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:43:25 +02:00
adminandClaude Opus 5.5 c0d7a55dcc Admin-Geraeteliste wie Kundenliste: Aktionen-Menue, Hostname verlinkt
Auftragskatalog, Log und 'In OE verschieben' im Aktionen-Menue statt
eigener Knoepfe/Spalte; Kennung unter dem Hostnamen; kompakte Tabelle -
passt jetzt ab 1280px ins Fenster (vorher ~1560px). In beiden Listen
fuehrt der Hostname direkt zum Auftragskatalog. Lokal geprueft.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 13:32:09 +02:00
adminandClaude Opus 5.5 a029010009 Geraeteliste: Aktionen-Menue nicht mehr abgeschnitten, einheitliche Knoepfe
Nutzer-Befund 09.10.2026 (Kunden-Admin, Flotte): 'Auftragskatalog' war
deutlich groesser als 'Aktionen', und das Aktionen-Menue wurde vom
scrollenden Tabellenrahmen (GUI-Runde Punkt 1) abgeschnitten.
- Tabellen mit Aufklapp-Menue scrollen nicht im Rahmen; Menues in der
  letzten Spalte oeffnen nach links; Formulare im Menue untereinander.
- Kunden-Geraeteliste schmaler: Auftragskatalog als erster Menue-Eintrag,
  Kennung klein unter dem Hostnamen, kompakte Tabelle - passt ab 1280px
  ohne Seitenscrollen; bis 1024px scrollt der Hauptbereich.
- Admin-Geraeteliste: kleine, gleich hohe Knoepfe.
Lokal mit headless Chromium geprueft (Menue vollstaendig sichtbar,
800/1024/1280/1440/1920px).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 13:27:36 +02:00
adminandClaude Opus 5.5 5f97ba1454 Diagnosezugang-Seite: Hinweis auf Merkmal 'Diagnosezugang sperren' und Konsolensperre
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 11:44:43 +02:00
adminandClaude Opus 5.5 8126b019a9 Dashboards mit Ringdiagrammen (Kunden- und Admin-Seite)
Reines SVG (Geometrie in templating.ring_segmente, Makros in
_diagramme.html), kein JS. Farben nach den Dataviz-Regeln: Kategorien
in fester Reihenfolge, mit validate_palette.js gegen Pico hell/dunkel
geprueft; Statusfarben plus Symbol fuer den Geraetezustand; 'Weitere'
und Sonderfaelle grau. Legende mit Zahl und Prozent (Farbe nie allein),
Tooltip je Segment, eine einzige Kategorie als Satz statt Ring.
Hell/dunkel und 390-1920px lokal geprueft.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 11:40:42 +02:00
adminandClaude Opus 5.5 90698573a7 Bereitstellungsvorlagen als sortierbare Tabelle mit Bearbeiten-Seite
Sortier-/filterbare Tabelle mit Distro, Partitionierung, Nutzung;
Hinweis, wenn die Distro nicht zum Workspace passt (in Produktion bei
zwei Liebherr-Entwicklungsprofilen). Bezeichnung fuehrt zur
Bearbeiten-Seite (vorbelegtes Formular, Loeschen nur ohne Nutzung).
Backend-Feld entfaellt, die Distro kommt vom Workspace; nur globale und
eigene Workspaces zur Auswahl. Lokal mit Browser-Ablauf geprueft.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 11:34:57 +02:00
adminandClaude Opus 5.5 606d0858e2 Datum statt Zeitstempel ueberall, Aktivitaetenliste je Organisation
Alle Zeitstempel-Ausgaben laufen durch den Filter datum; sortierbare
Datumsspalten tragen data-sort-wert (ISO), table-tools.js sortiert danach
chronologisch statt textuell. Neuer Reiter 'Aktivitaeten' bei der
Organisation, 'Letzte Aktivitaeten' auf beiden Dashboards mit
zusammengefassten Agent-Laeufen statt Einzelereignissen. Lokal geprueft.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 11:30:32 +02:00
adminandClaude Opus 5.5 50f27a2e57 Aktivierungscodes-Seite: Status, Gueltigkeit, Nutzung, Deaktivieren/Loeschen
Neue Tabelle mit Bezeichnung, Status (aktiv/deaktiviert/abgelaufen),
Gueltig bis, Nutzung, Datum statt Rohzeitstempel; Anlegen mit
Bezeichnung und Gueltigkeit; Loeschen mit Bestaetigung. Neuer
Jinja-Filter datum (Ortszeit, deutsches Format), gemeinsame Bausteine
(kompakte Tabelle, Status-Marken, Inline-Aktionen), Tabellen scrollen
im eigenen Rahmen statt die Seite zu verbreitern. Lokal mit headless
Chromium geprueft (Anlegen/Deaktivieren/Loeschen, Breiten 1280-1920).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 11:25:39 +02:00
adminandClaude Opus 5.5 44cb50c3af GUI: Seiten nicht mehr 10px zu breit, Innenabstand am Rand, Handy-Kopfzeile
Pico setzt den Container-Innenabstand ab 576px auf 0; mit unseren groesseren
max-width-Stufen war der Container so breit wie das Fenster, der Inhalt
klebte am Rand und Picos -10px-Rand der Kopfzeilen-Liste erzeugte einen
horizontalen Scrollbalken. Jetzt fester seitlicher Innenabstand. Auf dem
Handy: E-Mail in der Kopfzeile ausgeblendet, breite Tabellen scrollen im
Hauptbereich statt die ganze Seite. Lokal mit headless Chromium bei
390/800/1280/1440/1920px geprueft (scrollWidth == clientWidth).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 11:20:35 +02:00
adminandClaude Opus 5.5 f3d082e47d Workspace-Einstellungen: feste weiße Schrift im geöffneten Knopf
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 16:07:08 +02:00
adminandClaude Opus 5.5 e118c1d977 Workspace-Einstellungen: Schrift im geöffneten Knopf lesbar
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 16:06:41 +02:00
adminandClaude Opus 5.5 1f22c2b257 Workspace-Creator: Menüname, Katalogpflege im Katalog, Vorlage für Schulen
Hauptmenü heißt Workspace-Creator mit den Reitern Katalog und Workspaces;
der verwechselbare Reiter Vorlagen entfällt, Merkmale/Kategorien/
Webapp-Vorlagen/Distro-Abdeckung liegen als Unterseiten im Katalog.
Vorlagen zeigen „für Schulen“ bzw. „für alle“/Organisationsnamen statt
„Kundengruppe“. Aufklapp-Bereiche der Workspace-Einstellungen sehen wie
Knöpfe aus und heben sich geöffnet ab (Nutzer-Feedback 07.10.2026).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 16:06:11 +02:00
adminandClaude Opus 5.5 f83f4c460c ISO-Dateiname nennt den Workspace der Ziel-OE
Beim E2E-Test mit Ziel-OE gefunden: der Name zeigte den Workspace des
Installationsprofils, installiert wird aber der der Ziel-OE.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 14:47:04 +02:00
adminandClaude Opus 5.5 6e4caf7e95 Struktur & Workspaces für root, Ziel-OE am Installationsmedium (Schritt F)
Admin-Reiter je Organisation: OE-Baum als Karten mit Geräten/Distros,
eigenem bzw. geerbtem Workspace, Workspace zuweisen (automatisch oder
Version pinnen) und Unter-OEs anlegen; Ablehnungen der Distro-Regel
werden mit Begründung angezeigt. Reiterleiste bricht jetzt um.
Kundenseite: Struktur zeigt den Workspace je OE, Gerät verschieben zeigt
die Ablehnung statt sie zu verschlucken, Installationsmedium mit
Ziel-OE (gespeichert, Konflikt mit dem Profil verständlich gemeldet).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 14:12:35 +02:00
adminandClaude Opus 5.5 9dccf7dd79 Migration 0008: Ziel-OE in der Installationsmedium-Konfiguration
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 14:12:21 +02:00