- Freunde (freunde.py, Tabelle friendships): suchen, anfragen, annehmen,
ablehnen, entfernen; neue Seite "Freunde" im Menü
- Vorratslisten und Kanban-Projekte immer privat: sichtbar für Ersteller und
Mitglieder; teilen nur mit Freunden (Admins: mit allen); Kanban-Mitglieder
(Tabelle kanban_project_members), Bearbeiter nur aus dem Projekt,
ausgetretene Mitglieder verlieren ihre Zuteilung
- Artikel: lesen alle; bearbeiten Autor, Mitarbeitende verknüpfter
Kanban-Projekte und Admins; verknüpfen nur bearbeitbare Artikel
(sonst ließen sich Rechte erschleichen); Board-Liste auf der Artikelseite
zeigt nur sichtbare Boards
- Administratoren sehen und bearbeiten alles
- Reisen: Städte nur von Freunden (Admins: alle); "Reiserouten zeigen"
zeichnet die Strecken der Kilometer-Rechnung als Bögen
- Migration Schritt 6: bisher gemeinsame Listen und alle Projekte bekommen
die vorhandenen Konten als Mitglieder, ohne Ersteller → erster Admin;
erste Liste einer neuen Installation gehört dem ersten Konto
- Tests: test_freunde.py, test_zugriff.py, bestehende auf Privat-Modell
umgestellt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Eine abhängige Aufgabe bleibt gesperrt (in "Offen"), bis jede
Voraussetzung in "Wartet" oder "Erledigt" steht – vorher erst bei
"Erledigt"
- Server (UNLOCKING), Karte, Dialog und Meldungen angepasst; Test prüft
"In Arbeit" (gesperrt) und "Wartet" (frei)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Checkliste je Aufgabe (Tabelle kanban_checklist): im Dialog anlegen,
abhaken, entfernen; Karte zeigt den Fortschritt
- "Setzt voraus" (Tabelle kanban_dependencies): Aufgabe ist gesperrt und
bleibt in "Offen", bis alle Voraussetzungen erledigt sind; nur innerhalb
eines Projekts, Kreise und Selbstbezug werden abgelehnt; gelöschte
Voraussetzungen entsperren, archivierte zählen als erledigt
- Ziehen einer gesperrten Karte aus "Offen" zeigt, worauf sie wartet
- Migrationen: Tabellen-Neuaufbau über Zwischennamen, damit Fremdschlüssel
anderer Tabellen nicht auf die gelöschte Alt-Tabelle umgebogen werden
(Test für ganz alte Datenbanken)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Eine ValidationError-Klasse statt zwei (links.py, projects.py), ein
Fehler-Handler in main.py
- clean_text() ersetzt vier fast gleiche Text-Prüfungen (Kanban, Haushalt,
Reisen, Artikel); Fehlermeldungen nennen jetzt überall die Höchstlänge
- Zeitstempel (now_iso, iso_ago, iso_after) und Kontenliste (user_list)
an einer Stelle; ungenutzte Importe entfernt
- Tests für die Helfer und für einheitliche 400-Fehler aus allen Bereichen
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Kanban:
- Erledigte Aufgaben wandern 2 Tage nach "Erledigt" ins Archiv (Button
"Archiv (n)" im Board, dort "Zurückholen") und werden nach 14 Tagen
automatisch gelöscht (stündlich im Hintergrund und beim Öffnen)
- Neue Spalte done_at; schon erledigte Aufgaben zählen ab dem Update
Reisen:
- "Karte herunterladen": eigene Städte und besuchte Länder als PNG
(4000/8000 px, nur besuchte Hauptstädte beschriftet) oder SVG (kleine
Punkte, alle Städte beschriftet, beliebig zoombar); Ausschnitt "Meine
Orte" oder ganze Welt; Beschriftungen weichen einander aus
- Hauptstadt-Kennzeichen (GeoNames PPLC) wird beim Hinzufügen gespeichert
und für ältere Städte im Hintergrund bei Open-Meteo nachgetragen
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
FastAPI-Backend und React-Frontend mit Konten, Sendungsverfolgung,
Projekt-Artikeln, Vorrat & Einkauf mit Rezeptabgleich, Reise-Weltkarte,
Kanban-Projekten mit Priorität, Server-Monitoring und den Designs
Matrix und Blackwall. Betrieb per Docker hinter nginx (siehe DEPLOY.md).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>