Type de paiement à montant libre (pensé pour le mécénat)
ci-cd / build-backend (push) Successful in 33s
ci-cd / build-frontend (push) Successful in 18s
ci-cd / deploy (push) Successful in 12s

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>
This commit is contained in:
AdamThomas
2026-10-03 13:49:27 +02:00
co-authored by Claude Opus 5.5
parent ccd769d04e
commit c49ce520e3
13 changed files with 280 additions and 7 deletions
+5
View File
@@ -537,6 +537,7 @@ class FormPaymentOptionRead(ApiModel):
amount: float
order: int
requires_mecenat_info: bool
free_amount: bool
created_at: dt.datetime
updated_at: dt.datetime
@@ -546,6 +547,7 @@ class FormPaymentOptionCreate(ApiModel):
amount: float
order: int = 0
requires_mecenat_info: bool = False
free_amount: bool = False
class FormPaymentOptionUpdate(ApiModel):
@@ -553,6 +555,7 @@ class FormPaymentOptionUpdate(ApiModel):
amount: float | None = None
order: int | None = None
requires_mecenat_info: bool | None = None
free_amount: bool | None = None
class PublicPositionOption(ApiModel):
@@ -572,8 +575,10 @@ class PublicPaymentOption(ApiModel):
id: uuid.UUID
label: str
# Montant fixe, ou minimum si `free_amount`.
amount: float
requires_mecenat_info: bool
free_amount: bool
class PublicFormConfig(ApiModel):