Files
benevoles/backend/app/migrations/versions/0021_payment_option_free_amount.py
T
AdamThomasandClaude Opus 5.5 c49ce520e3
ci-cd / build-backend (push) Successful in 33s
ci-cd / build-frontend (push) Successful in 18s
ci-cd / deploy (push) Successful in 12s
Type de paiement à montant libre (pensé pour le mécénat)
FormPaymentOption.free_amount (migration 0021) : case « Montant libre »
sur l'écran Inscriptions ; le montant configuré devient le minimum et le
bénévole saisit le sien sur le formulaire public (payment_amount, virgule
ou point, 2 décimales max, plafond 10 000 € contre une faute de frappe —
422 form.invalid_free_amount sinon). Validé côté client avant l'envoi,
le serveur restant seul juge. Le montant choisi est celui du checkout
SumUp, recopié sur la fiche, l'email de confirmation et le cerfa.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 13:49:27 +02:00

33 lines
927 B
Python

"""Type de paiement à montant libre
Revision ID: 0021_payment_option_free_amount
Revises: 0020_mecenat_receipt_number
Create Date: 2026-10-03
`form_payment_option.free_amount` : le bénévole saisit lui-même son montant
sur le formulaire public, `amount` en devient le minimum — voir
`app/api/forms.py:_free_amount`. Les types de paiement existants restent à
montant fixe.
"""
from collections.abc import Sequence
import sqlalchemy as sa
from alembic import op
revision: str = "0021_payment_option_free_amount"
down_revision: str | None = "0020_mecenat_receipt_number"
branch_labels: str | Sequence[str] | None = None
depends_on: str | Sequence[str] | None = None
def upgrade() -> None:
op.add_column(
"form_payment_option",
sa.Column("free_amount", sa.Boolean(), nullable=False, server_default="false"),
)
def downgrade() -> None:
op.drop_column("form_payment_option", "free_amount")