Regeln bearbeiten können + Bug: Speichern mit Feld "Empfänger" schlägt fehl #10
Labels
No labels
diskussion
feature-idee
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
budmin/finanzplaner#10
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Bug: Regel mit Feld "Empfänger" lässt sich nicht speichern
Ursache gefunden: Die
rules.field-Spalte hat einenCHECK-Constraint, der beim Anlegen der Tabelle festgelegt wird. Vor dem Merge von #4 war dasCHECK (field IN ('buchungstext', 'vorgang'))—merchant_namekam erst mit #4 dazu. SQLite kannCHECK-Constraints nicht perALTER TABLEändern, und die damalige Migration hat nur die neue Spaltemerchant_nameergänzt (perALTER TABLE ADD COLUMN), nicht aber den Constraint auf bereits existierenden Datenbanken repariert. Wer die App schon vor #4 laufen hatte, sitzt also auf einer Datenbank mit dem alten Constraint.Reproduziert:
POST /api/rulesmitfield: "merchant_name"auf einer solchen Datenbank wirftSqliteError: CHECK constraint failed, der Fehler wird nirgends abgefangen und crasht als unbehandelte Exception (hässliche Stacktrace-HTML-Seite statt sauberer Fehlermeldung).Fix: Migration ergänzen, die bestehende
rules-Tabellen mit altem Constraint per Table-Rebuild (SQLite-Standardverfahren für Constraint-Änderungen: neue Tabelle anlegen, Daten kopieren, alte löschen, umbenennen) auf den neuen Constraint hebt — ohne Datenverlust. Zusätzlich: Fehler in den Regel-Routen sauber abfangen statt crashen zu lassen.Feature: Regeln bearbeiten
Aktuell lassen sich Regeln nur anlegen und löschen, nicht bearbeiten — wer eine Regel korrigieren will (Muster, Kategorie, Feld, Tag), muss sie löschen und neu anlegen.
Vorschlag:
PATCH /api/rules/:idplus Bearbeiten-Button pro Regel in der UI, der das bestehende Formular mit den aktuellen Werten befüllt (analog zum "Neue Regel"-Formular, das schon da ist).mentioned in commit
faa7109d61mentioned in merge request !14
mentioned in commit
7e00d6e2e0