knuspermagier.de
Der privateste Blog von Philipp.

Devlog #6 - Speiseplaner

Ein paar Kleinigkeiten noch, bevor ich mich wieder anderen Sachen widme.

Filament

Wie im letzten Log schon angemerkt, wollte ich noch Filament reinwerfen um ein paar Sachen editieren zu können, die sich alle gleich Verhalten und ich ausnahmsweise das Rad mal nicht neu erfinden will. Also Zutaten, Einheiten, Zutaten-Kategorien, Tags und so Kram.

Leider kann ich noch kein Filament v3 benutzen, da ich noch kein Livewire v3 benutzen kann. Also versuchte ich mal die v2 zu installieren, leider scheiterte es an einer ellenlangen composer Fehlermeldung, für die ich leider viel länger brauchte, als es mir lieb war: Am Ende waren war das blade-heroicons-Package schuld, welches ich in Version 2.1 nutze. Filament nutzt aber leider die 1.x-Version und damit crasht alles.

Ich hatte nun folgende Optionen:

  1. Alle Livewire-Komponenten (auch in meiner Library, und damit in allen Projekten, die darauf basieren) auf Version 3 portieren, damit ich Filament auch in der neuen Version nutzen kann
  2. Die Heroicons austauschen, gegen ein anderes Iconset. Allerdings ebenfalls in allen Projekten, da die Dependency ja in meiner UI-Library steckt.

Ich entschied mich für das Zweite und nutze nun die Remix Icons. So wurde aus “Ich installier kurz Filament und hab in fünf Minuten alles fertig” ein mehrstündiges Abenteuer, aber gut.

Jetzt kann ich immerhin alles mögliche editieren, und am wichtigsten: Mergen. Das ist ja mein Hauptgrund für diese Rezepte-App. Endlich kann ich meine Rezepte so bereinigen, dass es nicht “Zwiebeln (rot)” und “rote Zwiebeln” im System gibt, sondern nur eins davon! Wunderbar!

screenshot-2023-08-26-at-18.42.07.png

Anlegen von Rezepten

Als ich das Plätzchenrezept meiner Oma einpflegen wollte, fiel mir auf, dass ich gar keine Funktion hatte um ein neues, leeres Rezept anzulegen. Bisher ging nur der Import von einer URL. Jetzt gehts!

Zutaten-Liste

Ich hab mal eine (ziemlich dumme) Liste aller Zutaten eingefügt, einfach nur sortiert danach, wie oft sie benutzt werden. Die Knoblauchzehe gewinnt!

Beim Schreiben merke ich jetzt gerade, dass alle Rezept-Zutaten-Zuordnungen irgendwie verloren gegangen sind, wird wohl Zeit ein Backup wiederherzustellen! Ein guter Grund, mal heraus zu finden, wie das mit restic überhaupt funktioniert. Anscheinend so:

/usr/bin/restic -r rclone:storagebox: restore latest \
     --include /docker/[…]/database.sqlite \
     --target /tmp

Mit dieser magischen Formel konnte ich die Datenbank wiederherstellen! Wer oder was allerdings alle Zuordnungen gelöscht hat, ist mir ein Rätsel, dem ich jetzt wohl mal auf den Grund gehen muss. Immerhin kann ich nun einen Screenshot machen:

screenshot-2023-08-26-at-18.41.54.png

Update: Ich fand den Übeltäter! In einer Migration habe ich ein paar Datenbankspalten verändert und… naja, SQLite kann das leider nicht. Es wird also quasi eine neue Tabelle erstellt, die alten Daten reingeschoben und die alte gelöscht. Dabei gehen natürlich alle Zutaten-Zuordnungen verloren, weil ich einen FOREIGN KEY mit ON DELETE CASCADE drauf habe. Phew. SQLite hat wohl doch ein paar Schattenseiten.

Ausblick

Der nächste Schritt für den Speiseplaner ist jetzt erstmal, also sobald keine Zutaten mehr gelöscht werden: Nutzen und schauen, was noch getan werden muss. Ich denke, mit den Änderungen der letzten Tage bin ich der Benutzbarkeit schon ein paar Schritte näher gekommen und bei der letzten Wochenplanung half mir die neue Suchfunktion durchaus schon.

Kommentare, Feedback und andere Anmerkungen?
Schreib mir eine E-Mail 🤓