diff --git a/src/meal_manager/alembic/versions/2025_10_27_1225-13084c5c1f68_add_subscriptions_applied_column_to_.py b/src/meal_manager/alembic/versions/2025_10_27_1225-13084c5c1f68_add_subscriptions_applied_column_to_.py index cabc65f..0b91c17 100644 --- a/src/meal_manager/alembic/versions/2025_10_27_1225-13084c5c1f68_add_subscriptions_applied_column_to_.py +++ b/src/meal_manager/alembic/versions/2025_10_27_1225-13084c5c1f68_add_subscriptions_applied_column_to_.py @@ -22,7 +22,19 @@ def upgrade() -> None: """Upgrade schema.""" # ### commands auto generated by Alembic - please adjust! ### op.add_column( - "event", sa.Column("subscriptions_applied", sa.Boolean(), nullable=False) + "event", + sa.Column( + "subscriptions_applied", + sa.Boolean(), + nullable=False, + server_default="false", + ), + ) + op.add_column( + "event", + sa.Column( + "ignore_subscriptions", sa.Boolean(), nullable=False, server_default="true" + ), ) # ### end Alembic commands ### @@ -31,4 +43,5 @@ def downgrade() -> None: """Downgrade schema.""" # ### commands auto generated by Alembic - please adjust! ### op.drop_column("event", "subscriptions_applied") + op.drop_column("event", "ignore_subscriptions") # ### end Alembic commands ### diff --git a/src/meal_manager/main.py b/src/meal_manager/main.py index ef14d33..e725dd8 100644 --- a/src/meal_manager/main.py +++ b/src/meal_manager/main.py @@ -239,6 +239,7 @@ async def edit_event( event.registration_deadline = registration_deadline event.description = form_data.get("eventDescription") event.recipe_link = form_data.get("recipeLink") + event.ignore_subscriptions = form_data.get("ignoreSubscriptions") == "on" session.commit() @@ -257,6 +258,7 @@ async def add_event(request: Request, session: SessionDep, user: StrictUserDep): registration_deadline=registration_deadline, description=form_data.get("eventDescription"), recipe_link=form_data.get("recipeLink"), + ignore_subscriptions=form_data.get("ignoreSubscriptions") == "on", ) session.add(event) session.commit() diff --git a/src/meal_manager/models.py b/src/meal_manager/models.py index 046baa1..f7120da 100644 --- a/src/meal_manager/models.py +++ b/src/meal_manager/models.py @@ -34,6 +34,7 @@ class Event(Base): team_prep_max: Mapped[int] = mapped_column(default=1, nullable=False) subscriptions_applied: Mapped[bool] = mapped_column(default=False, nullable=False) + ignore_subscriptions: Mapped[bool] = mapped_column(default=False, nullable=False) registrations: Mapped[list["Registration"]] = relationship( "Registration", cascade="all, delete" diff --git a/src/meal_manager/scripts.py b/src/meal_manager/scripts.py index c1b8bb6..0e93c1c 100644 --- a/src/meal_manager/scripts.py +++ b/src/meal_manager/scripts.py @@ -18,6 +18,7 @@ def apply_subscriptions(session: Session, event: Event = None, dry_run: bool = F today = datetime.date.today() query = select(Event).where( ~Event.subscriptions_applied, + ~Event.ignore_subscriptions, func.strftime("%Y-%m-%d %H:%M:%S", Event.event_time) >= today.isoformat(), func.strftime("%Y-%m-%d %H:%M:%S", Event.event_time) <= (today + datetime.timedelta(days=7)).isoformat(), diff --git a/src/meal_manager/templates/add_event.html b/src/meal_manager/templates/add_event.html index 07e995e..6275725 100644 --- a/src/meal_manager/templates/add_event.html +++ b/src/meal_manager/templates/add_event.html @@ -30,6 +30,15 @@ + +