Sprint 12: UI-Vereinheitlichung + Läufigkeits-Tracker
- by-tabs/by-tab: einheitliche Tab/Pill-Navigation in allen Seiten - by-section-label, by-toolbar: einheitliche Section-Labels und Toolbars - Design-Tokens: fehlende --c-amber, --c-primary-soft ergänzt, Fallback-Werte entfernt - sitting.js: sitting-layout für konsistentes flush-Layout (wie walks) - Läufigkeits-Tracker: neuer Health-Tab für Hündinnen mit Zyklusvorhersage, Timeline vergangener Läufigkeiten, Erinnerungen und auto-berechnetem Nächst-Datum - emptyState-Bug: icon-Parameter muss SVG sein, nicht Icon-Name (dog/bell/warning gefixt) - SW-Cache: by-v103, APP_VER: 79
This commit is contained in:
parent
32d630d5a1
commit
b58789373c
30 changed files with 4344 additions and 523 deletions
|
|
@ -439,6 +439,9 @@ def _migrate(conn_factory):
|
|||
# Events: Quelle + externe ID für gescrapte Events
|
||||
("events", "quelle", "TEXT NOT NULL DEFAULT 'nutzer'"),
|
||||
("events", "external_id", "TEXT"),
|
||||
# Admin: User-Sperre
|
||||
("users", "is_banned", "INTEGER NOT NULL DEFAULT 0"),
|
||||
("users", "ban_reason", "TEXT"),
|
||||
]
|
||||
with conn_factory() as conn:
|
||||
for table, column, col_type in migrations:
|
||||
|
|
@ -525,6 +528,12 @@ def _migrate(conn_factory):
|
|||
ON events(external_id) WHERE external_id IS NOT NULL;
|
||||
""")
|
||||
|
||||
# Users: Eindeutiger Benutzername (case-insensitive via COLLATE NOCASE)
|
||||
conn.executescript("""
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_users_name_unique
|
||||
ON users(name COLLATE NOCASE);
|
||||
""")
|
||||
|
||||
# Wiki: User-Foto-Einreichungen
|
||||
conn.executescript("""
|
||||
CREATE TABLE IF NOT EXISTS wiki_foto_submissions (
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue