Formulaire public : encart de paiement de la cotisation via Yapla

FormTemplate.yapla_url (lien vers la page de cotisation Yapla, doit
commencer par http(s)://, PATCH .../form comme description/is_open)
fait apparaître un encart « Payer ma cotisation » sous la case
WILLING_TO_PAY_FEE, sur le formulaire public. Configurable depuis le
panneau « Personnalisation » de l'écran /inscriptions. La case reste
une simple déclaration : rien ne vérifie que le paiement a eu lieu.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
AdamThomas
2026-09-23 21:10:38 +02:00
co-authored by Claude Sonnet 5
parent 8f8350aa1b
commit 5f80f167c8
14 changed files with 181 additions and 17 deletions
+16 -7
View File
@@ -85,8 +85,11 @@ les tables sauf les tables d'association.
direct vers un `VolunteerCompanionWish` ; la coordination la résout à la
main depuis la fiche une fois les deux bénévoles inscrits),
`self_declared_available`/`willing_to_pay_fee` (cases à cocher **purement
informatives**, sans lien avec `Availability` ni aucun workflow de
paiement).
informatives** : rien ne vérifie qu'un paiement a réellement eu lieu,
aucun lien avec `Availability`). Si `FormTemplate.yapla_url` (ci-dessous)
est configuré, un encart « Payer ma cotisation » apparaît sous la case
`WILLING_TO_PAY_FEE`, vers la page de cotisation Yapla (externe) — la
déclaration et le paiement restent deux choses distinctes, non reliées.
- **`Artist`** : programmation de l'édition (`name`, `performance_date`,
`start_time`, `end_time` — `end_time <= start_time` ⇒ le passage finit le
lendemain). Unique (`edition_id`, `name`, `performance_date`). La
@@ -205,11 +208,16 @@ les tables sauf les tables d'association.
d'une édition (une ligne, créée à la demande). `is_open` coupe les
nouvelles soumissions sans effacer la configuration. `logo`/
`logo_content_type` (image, `PUT .../form/logo`, stockée en base comme les
autres images de l'appli) et `description` (texte libre) habillent la page
publique — aucun rapport avec les champs collectés (`FormField`
ci-dessous) : affichés au-dessus/dans le formulaire, jamais soumis par le
bénévole. `PATCH /editions/{id}/form` prend `is_open`/`description`,
chacun optionnel (absent = inchangé).
autres images de l'appli), `description` (texte libre) et `yapla_url`
habillent la page publique — aucun rapport avec les champs collectés
(`FormField` ci-dessous) : affichés au-dessus/dans le formulaire, jamais
soumis par le bénévole. `yapla_url` : lien vers la page de cotisation sur
Yapla (yapla.com, plateforme externe de paiement pour associations) —
affiché en encart sous la case `WILLING_TO_PAY_FEE` si activée (voir
`Volunteer` ci-dessus) ; doit commencer par `http://`/`https://`
(422 `form.invalid_yapla_url` sinon), aucune autre vérification (rien ne
confirme qu'un paiement a eu lieu). `PATCH /editions/{id}/form` prend
`is_open`/`description`/`yapla_url`, chacun optionnel (absent = inchangé).
- **`FormField`** : un champ activé sur le formulaire (`field_type` ∈
`EMAIL` / `PHONE` / `POSITION_WISHES` / `ARTIST_WISHES` / `COMPANION_WISH`
/ `AVAILABLE` / `WILLING_TO_PAY_FEE` / `PHOTO` / `COMMENT`, au plus un par
@@ -655,6 +663,7 @@ Aucune dépendance locale requise hors Docker.
| 24 | Feuilles de poste : photo des bénévoles affectés à côté de leur nom (vignette 14 mm, case vide si absente) | à valider |
| 25 | Formulaire public : photo recadrée en carré côté navigateur avant l'envoi, aperçu agrandi ; personnalisation de la page (logo, texte d'introduction) depuis l'écran de configuration (`/inscriptions`) | à valider |
| 26 | Feuilles de poste : programmation du jour (horaires des artistes, tous postes confondus) sous le référent | à valider |
| 27 | Formulaire public : encart de paiement de la cotisation via Yapla (lien externe configurable), affiché sous la case correspondante | à valider |
**Reste hors périmètre** (modèle prêt à les accueillir) : SMS, constructeur
de formulaire, pointage sur site, IA. Frontend : squelette + 6 écrans +