- 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>
- Wohnorte als Liste mit "seit"-Datum (Tabelle travel_homes, ersetzt den
einzelnen Wohnort; Migration Schritt 5 übernimmt ihn): Reisen starten
beim damals gültigen Wohnort, Wechsel zählen als Umzug, Tage am
Wohnort nicht als Reisetage
- "In dieser Zeit hier gewohnt" im Besuch: legt Wohnort ab Beginn und den
vorherigen wieder ab Ende + 1 Tag an
- Anreise je Besuch (automatisch / von zuhause / vom vorherigen Ort):
Rundreisen auch mit mehreren Tagen zwischen den Orten
- Fix: Besuche bleiben bearbeitbar, auch wenn eine Fotodatei fehlt;
Speicherfehler erscheinen im Dialog statt verdeckt dahinter
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Wohnort pro Konto (Tabelle travel_home), im Tab "Statistik" über die
Städtesuche festlegen, auf der Karte als ⌂
- Kilometer (route.js): jede Reise mit Hin- und Heimweg ab Wohnort;
Reisen mit höchstens einem Tag Abstand als Rundreise; Besuche während
eines längeren Aufenthalts als Ausflug hin und zurück; ohne Wohnort
werden Reisen direkt verbunden
- "Wie gerechnet?" listet alle Teilstrecken; Reisetage zählen jeden Tag
nur einmal (Ausflüge im Aufenthalt nicht doppelt)
- Wohnort-Suche mit eigenen IDs (zwei Suchfelder auf der Seite)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Wunschliste (Spalte travel_cities.wish): eigene Punktform auf der Karte,
zählt nicht als besucht, für andere Konten unsichtbar; "War ich da ✓"
- Besuche je Stadt (Tabellen travel_visits, travel_visit_photos): Zeitraum,
Begleitung, Notizen, Fotos (Upload ohne Metadaten); nur für das eigene
Konto; ein Besuch macht aus einem Wunsch einen Besuch
- Fotos von Besuchen zählen beim Aufräumen verwaister Bilder als benutzt;
beim Entfernen eines Fotos, Besuchs oder einer Stadt werden die Dateien
gelöscht
- Zeitleiste "Wann war ich wo?" nach Jahren, Fotos mit Lightbox
- Statistik: Länder (Welt, je Kontinent), Landfläche, äußerste Orte,
Kilometer entlang der Besuche
- Ansichten unter der Karte als Tabs: Besuchte Orte, Zeitleiste,
Statistik, Wunschliste
- Migration Schritt 4, Tests für Wunschliste, Besuche, Fotos und Aufräumen
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- backend/tests: jede Test-Funktion bekommt eine frische Datenbank;
test_migrationen.py baut ältere Datenbank-Stände nach und prüft die
verlustfreie Umstellung (auch zweiter Start ohne Änderung)
- requirements-dev.txt mit pytest
- Fix (von den Tests gefunden): Eine neue, leere Datenbank bekam keine
erste Liste "Zuhause"; jetzt einmalig beim ersten Start
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>