# Lektionen & Erkenntnisse - 05.06.2026 ## 📌 Projekt: FortuneCookie App (Ubuntu Touch 24.04 / Lomiri) --- ## ✅ Heute umgesetzte Aufgaben | Aufgabe | Lösung | |---------|--------| | Listenwechsel funktioniert nicht | `itemAt()` → direkter Array-Zugriff auf `listObjects` in ComboBox Initialisierung (Main.qml:287-300) | | Neuer Spruch bei Listenwechsel | `reloadFortune()` verwendet jetzt `get_new_fortune()` statt `get_current_fortune()` (Main.qml:36-44) | | Redensarten: nur Sprichwörter | idioms.json bereinigt (englische Zitate, Shakespeare etc. entfernt), mit internationalen Sprichwörtern aufgefüllt | | Ursprung bei Redensarten | Klammern hinzugefügt: `(Deutsche Redensart, 16. Jh.)` | | Trennzeichen vor Ursprung | Bindestriche bei Zitaten entfernt: `Zitat\n\nAutor` (famous quotes, farmer wisdom, sandman, UNfortune) | | budandterence-Liste | Entfernt (nicht überzeugend) - aus AVAILABLE_FORTUNE_LISTS, Descriptions und QML entfernt | | Listenauswahl: Spruchanzahl | `get_fortune_lists_descriptions_only()` fügt jetzt `(Anzahl)` an Beschreibung an (fortunecookie.py:315-317) | | Vegane Rezepte: Zeilenumbrüche | Zwei Leerzeilen zwischen Zutaten und Zeit: `Zutaten\n\nZeit` | --- ## 📝 Code-Änderungen ### QML (`qml/Main.qml`) - **Zeile 287-300**: ComboBox Initialisierung - `itemAt()` durch direkten Array-Zugriff auf `listObjects` ersetzt - **Zeile 36-44**: `reloadFortune()` - `get_current_fortune()` durch `get_new_fortune()` ersetzt - **Zeile 109-121**: budandterence aus descriptions-Object entfernt ### Python Backend (`src/fortunecookie.py`) - **Zeile 39-49**: `budandterence` aus `AVAILABLE_FORTUNE_LISTS` entfernt - **Zeile 284-294**: budandterence aus `get_fortune_lists_with_description()` entfernt - **Zeile 302-318**: budandterence aus `get_fortune_lists_descriptions_only()` entfernt + Spruchanzahl hinzugefügt ### Fortune-Dateien (`assets/fortunes/`) - **idioms.json**: Komplett überarbeitet - nur Redensarten/Sprichwörter in deutscher Übersetzung mit Ursprung in Klammern - **vegan recipes.json**: Formatierung korrigiert - zwei Zeilenumbrüche zwischen Zutaten und Zeit - **famous quotes.json, farmer wisdom.json, sandman.json, UNfortune.json**: Bindestriche vor Autor entfernt - **budandterence.json**: Gelöscht --- ## 🔧 Technische Hinweise ### ComboBox mit Objekt-Modell - **Problem**: `itemAt()` funktioniert nicht mit Array von Objekten in ComboBox - **Lösung**: Direkter Zugriff auf `listObjects[i]` statt `combobox.itemAt(i)` ### Spruch-Laden bei Listenwechsel - **Problem**: `get_current_fortune()` gibt gespeicherten Spruch zurück, nicht aus neuer Liste - **Lösung**: `get_new_fortune()` lädt neuen Spruch aus aktueller Liste ### JSON-Formatierung - Zeilenumbrüche in Strings: `\n\n` für Leerzeile, `\n` für Zeilenumbruch - Bei Konvertierungen: Datei als Text lesen, nicht als JSON, um Newlines korrekt zu verarbeiten ## 📚 Siehe auch - [ROUTINEN.md](./ROUTINEN.md) - Täglicher Workflow und Git-Branch-Strategie ### Git-Server (Gitea) auf YunoHost - **Installation**: `sudo yunohost app install gitea` - **Repository-URL**: `https://git.darklithium.de//` - **SSH-URL**: `gitea@:/.git` - **SSH-Key**: Benutzer `gitea` (nicht `git`) auf dem Server - **Hinweis**: Externer SSH-Zugriff (Port 22) oft blockiert → intern oder HTTPS verwenden