Email de test : récapitulatif de planning compilé
ci-cd / build-backend (push) Successful in 46s
ci-cd / deploy (push) Successful in 12s
ci-cd / build-frontend (push) Successful in 21s

L'email de test reprend le modèle en cours d'édition, balises remplies
avec le planning d'un bénévole au choix (premier avec un créneau par
défaut), option lien de connexion sans vrai jeton, sujet « [Test] … » —
même fonction de rendu que l'envoi réel.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
AdamThomas
2026-10-28 19:44:14 +01:00
co-authored by Claude Opus 5.5
parent 461742eb78
commit 440466ccf9
12 changed files with 262 additions and 46 deletions
+11 -3
View File
@@ -608,9 +608,16 @@ ni corps**). Config : `SMTP_HOST/PORT/USER/PASSWORD/STARTTLS/SSL/FROM`,
- **Email de test depuis l'appli** : bloc « Tester l'envoi d'emails » de
l'onglet « Messages » de la configuration (`ConfigMail.tsx`) — une
adresse et un bouton. `POST /editions/{id}/notifications/test` (`{email}`,
COORDINATION) envoie **tout de suite** (pas en tâche de fond) un email de
test, même mise en forme et même logo que les vrais, et renvoie le
résultat réel (`app/email/sender.py:deliver_test`) : `sent`, `disabled`
COORDINATION) envoie **tout de suite** (pas en tâche de fond) le
**récapitulatif de planning tel que les bénévoles le recevront** : le
modèle en cours d'édition (`subject`/`body`, case « avec le lien de
connexion » = même corps que le bouton du même nom), variables remplies
avec le planning d'un vrai bénévole (`volunteer_id`, à défaut le premier
par nom qui a un créneau, à défaut un exemple fictif), sujet préfixé
« [Test] », même mise en forme et même logo — code partagé avec l'envoi
réel (`notifications.py:_planning_email`). `{lien_connexion}` y mène à la
page de connexion **sans jeton** (jamais de vrai lien magique vers la
boîte de test). Renvoie le résultat réel (`app/email/sender.py:deliver_test`) : `sent`, `disabled`
(`EMAIL_ENABLED=false`), `connection_failed`, `rejected`, avec la réponse
du serveur SMTP (jamais l'adresse du destinataire), le serveur et
l'expéditeur configurés — sans accès au serveur ni à ses logs.
@@ -1081,6 +1088,7 @@ Aucune dépendance locale requise hors Docker.
| 65 | Feuilles de poste compactées : bénévoles deux par ligne (vignette 10 mm, nom et téléphone superposés), titres, en-têtes de créneau et marges resserrés — sur un jeu réaliste de 6 feuilles, 11 pages ⇒ 6 (une par poste et par jour) | à valider |
| 66 | Ajout manuel d'un bénévole sans champ obligatoire (prénom et nom facultatifs, côté formulaire et API) ; un bénévole sans nom s'affiche « Sans nom » / « ? » dans les listes, la grille, la vue par bénévole, les badges et l'écran référent | à valider |
| 67 | Email de test : adresse + bouton dans l'onglet « Messages » de la configuration, envoi immédiat et résultat réel affiché (envoyé, envoi désactivé, connexion refusée, message refusé, avec la réponse du serveur SMTP) — `POST .../notifications/test` | à valider |
| 68 | L'email de test est le récapitulatif de planning compilé tel qu'envoyé aux bénévoles (modèle en cours d'édition, variables remplies avec le planning d'un bénévole au choix, option lien de connexion — sans vrai jeton —, sujet « [Test] … ») | à valider |
**Reste hors périmètre** (modèle prêt à les accueillir) : SMS, constructeur
de formulaire, IA. Frontend : squelette + 6 écrans +