neue Archivfunktion und Optimierung an Artikelbearbeitung

This commit is contained in:
2026-08-09 18:24:04 +02:00
parent dd51532533
commit b80e2d5a6c
23 changed files with 1185 additions and 77 deletions

View File

@@ -0,0 +1,39 @@
"""Phase 11: Archivierung von Listen
Revision ID: 0013
Revises: 0012
Create Date: 2026-08-08
"""
from collections.abc import Sequence
import sqlalchemy as sa
from alembic import op
revision: str = "0013"
down_revision: str | None = "0012"
branch_labels: str | Sequence[str] | None = None
depends_on: str | Sequence[str] | None = None
def upgrade() -> None:
op.add_column("list_member", sa.Column("archived_at", sa.DateTime(), nullable=True))
op.add_column(
"list_member", sa.Column("last_opened_at", sa.DateTime(), nullable=True)
)
# Bestandsmitgliedschaften nicht sofort der Automatik aussetzen:
# Ohne Startwert waere last_opened_at NULL und damit scheinbar "nie
# geoeffnet". Der Beitrittszeitpunkt ist die konservativere Annahme.
op.execute(
"UPDATE list_member SET last_opened_at = joined_at "
"WHERE last_opened_at IS NULL"
)
op.add_column("shopping_list", sa.Column("warn_7d_at", sa.DateTime(), nullable=True))
op.add_column("shopping_list", sa.Column("warn_1d_at", sa.DateTime(), nullable=True))
def downgrade() -> None:
op.drop_column("shopping_list", "warn_1d_at")
op.drop_column("shopping_list", "warn_7d_at")
op.drop_column("list_member", "last_opened_at")
op.drop_column("list_member", "archived_at")