Einkauf: Abhaken legt Produkte in den Wagen, "Einkauf beenden" übernimmt sie
- Abgehakte Produkte bleiben auf der Einkaufsliste, rutschen durchgestrichen
nach unten ("Im Wagen") und lassen sich zurücknehmen
- Button "Einkauf beenden (n)" verschiebt alle abgehakten Produkte auf einmal
in den Vorrat derselben Liste (Mengen werden zusammengeführt)
- Haken wird gespeichert (Spalte checked, Migration ergänzt sie) und ist für
alle sichtbar, die die Liste sehen; erneut hinzugefügte Produkte verlieren
den Haken
- Einträge gleiten per View Transition an ihren neuen Platz (aus bei
"Animation: aus")
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
b30acb652a
commit
f0e17b06b5
6 files changed
+109
-13
No files matched your search
@@ -21,6 +21,7 @@ HOUSEHOLD_TABLE = """(
|
||||
list_id INTEGER NOT NULL REFERENCES shopping_lists(id) ON DELETE CASCADE,
|
||||
quantity REAL NOT NULL CHECK (quantity > 0),
|
||||
unit TEXT NOT NULL DEFAULT 'stk' CHECK (unit IN ('stk', 'kg', 'l')),
|
||||
checked INTEGER NOT NULL DEFAULT 0, -- Einkauf: im Wagen, wandert erst mit "Einkauf beenden" in den Vorrat
|
||||
updated_at TEXT NOT NULL,
|
||||
updated_by INTEGER REFERENCES users(id) ON DELETE SET NULL,
|
||||
UNIQUE (list_id, key, list, unit)
|
||||
@@ -294,6 +295,13 @@ def _migrate(conn) -> None:
|
||||
conn.execute("DROP TABLE household_items_alt")
|
||||
|
||||
|
||||
def _migrate_checked(conn) -> None:
|
||||
# Einkauf ohne Haken-Spalte: ergänzen, bestehende Einträge sind nicht abgehakt
|
||||
columns = {r["name"] for r in conn.execute("PRAGMA table_info(household_items)")}
|
||||
if "checked" not in columns:
|
||||
conn.execute("ALTER TABLE household_items ADD COLUMN checked INTEGER NOT NULL DEFAULT 0")
|
||||
|
||||
|
||||
def _migrate_travel(conn) -> None:
|
||||
# Reise-Städte aus einer Vorversion ohne Höhe/Zeitzone: Spalten ergänzen
|
||||
columns = {r["name"] for r in conn.execute("PRAGMA table_info(travel_cities)")}
|
||||
@@ -387,6 +395,7 @@ def init() -> None:
|
||||
conn.execute("PRAGMA journal_mode = WAL")
|
||||
conn.executescript(SCHEMA)
|
||||
_migrate(conn)
|
||||
_migrate_checked(conn)
|
||||
_migrate_travel(conn)
|
||||
_migrate_monitor_token(conn)
|
||||
_migrate_kanban_categories(conn)
|
||||
|
||||
Reference in new issue
Block a user