You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Envoyer push, e-mails et pages légales dans la langue de l'utilisateur #199
E-mails : Brevo (UE), décision d'Ilan du 2026-09-28 (https://github.com/Inprogress-Agency/widoo-app/wiki/Architecture-Technique). Le lien de connexion est généré par l'Admin SDK Firebase et envoyé par l'API avec le modèle Widoo, en français ou en anglais ; idem pour la confirmation d'adresse (#202) et les réponses du support (#206).
D-069 (https://github.com/Inprogress-Agency/widoo-app/wiki/Design-Changelog) : les trois modèles (connexion, nouvelle adresse, réponse du support) sont dessinés dans E-22, à produire en français et en anglais ; expéditeur « Widoo », réponses vers l'adresse de contact ; durée des liens écrite « au bout de quelques heures ». Domaine : widoo.app n'est pas à nous ; l'expéditeur et contact@ passeront sur widooapp.com une fois acheté (authentification SPF, DKIM et DMARC du domaine dans Brevo obligatoire avant tout envoi).
Les textes anglais des pages légales n'existent pas encore au wiki : GET /v1/legal/:doc?locale=en, livré par #206, sert le français avec locale: "fr". Leur rédaction (et le remplissage des passages entre crochets) est #451, needs-design. Le critère « pages légales servies dans les deux langues » de ce ticket en dépend ; le reste (push et e-mails) n'en dépend pas.
Aucun envoi n'existe encore (push : #44 ; e-mails Brevo : #450, #397), donc ce ticket livre le socle commun que ces envois appelleront, sans coder d'envoi :
packages/shared : type partagé des textes par langue (fr et en obligatoires), choix du texte selon la langue, et la correspondance entre chaque type de notification et son interrupteur de notification_prefs (go_closed → nextDay, report_resolved → myRoutes, rappels → reminders).
apps/api : une fonction unique qui résout le destinataire d'un push (compte actif, interrupteur du type allumé, téléphones enregistrés, langue effective : compte → dernier téléphone → fr) et une pour l'e-mail d'un compte (adresse + langue) ; null = rien à envoyer. Tests sur base.
Pas de migration : la page Modele-de-Donnees ne demande pas de colonne locale sur notifications, la langue se lit à l'envoi. Les critères « reçoit push et e-mails en anglais » et « aucun envoi pour un type désactivé » se vérifieront de bout en bout avec #44 et #450 ; je le dirai dans la PR et sur ces tickets.
Socle livré par la PR #493 (choix de langue et préférences de chaque envoi, sans envoi). Les deux critères d'acceptation dépendent des envois, qui n'existent pas encore : push #44, e-mails #397 et #450 ; je l'ai écrit sur #44 et #450 avec l'interface à appeler. Pages légales : déjà servies selon ?locale=, en français tant que les textes anglais manquent (#451). La fusion fermera ce ticket avec ses critères vérifiés au niveau du destinataire seulement ; à MANAGER de décider s'ils se reportent sur #44 et #397/#450.
La PR #493 (c09aef7, niveau 1) livre le socle : pushRecipientOf, emailRecipientOf, notificationPrefOfKind (apps/api/src/notifications/recipients.ts) et Localized<T> (@widoo/shared). Aucun envoi n'existe encore, donc les deux critères ne se vérifient pas de bout en bout ici. Ils passent aux tickets qui envoient :
Vérification staging (MANAGER, 2026-10-15 vers 14:22Z) : deploy-staging.yml vert sur c09aef7 (run 38745193156) ; GET /v1/health répond {"status":"ok","database":"up"}. Il n'y a rien d'autre à vérifier en staging, puisque le socle n'a ni route ni envoi. Status passé de « À déployer » à « Terminés », Sprint 0.
Activity
IlanAMG commentedon Sep 28, 2026
E-mails : Brevo (UE), décision d'Ilan du 2026-09-28 (https://github.com/Inprogress-Agency/widoo-app/wiki/Architecture-Technique). Le lien de connexion est généré par l'Admin SDK Firebase et envoyé par l'API avec le modèle Widoo, en français ou en anglais ; idem pour la confirmation d'adresse (#202) et les réponses du support (#206).
IlanAMG commentedon Sep 28, 2026
D-069 (https://github.com/Inprogress-Agency/widoo-app/wiki/Design-Changelog) : les trois modèles (connexion, nouvelle adresse, réponse du support) sont dessinés dans E-22, à produire en français et en anglais ; expéditeur « Widoo », réponses vers l'adresse de contact ; durée des liens écrite « au bout de quelques heures ». Domaine : widoo.app n'est pas à nous ; l'expéditeur et contact@ passeront sur widooapp.com une fois acheté (authentification SPF, DKIM et DMARC du domaine dans Brevo obligatoire avant tout envoi).
IlanAMG commentedon Sep 28, 2026
D-070 (https://github.com/Inprogress-Agency/widoo-app/wiki/Design-Changelog) : mode sombre des e-mails dessiné dans E-22 (palette sombre, contrastes vérifiés) ; prévoir
prefers-color-schemeet les métacolor-schemedans les modèles.PaulThiberville commentedon Oct 14, 2026
Les textes anglais des pages légales n'existent pas encore au wiki :
GET /v1/legal/:doc?locale=en, livré par #206, sert le français aveclocale: "fr". Leur rédaction (et le remplissage des passages entre crochets) est #451,needs-design. Le critère « pages légales servies dans les deux langues » de ce ticket en dépend ; le reste (push et e-mails) n'en dépend pas.PaulThiberville commentedon Oct 15, 2026
🔨 Démarrage — plan :
Aucun envoi n'existe encore (push : #44 ; e-mails Brevo : #450, #397), donc ce ticket livre le socle commun que ces envois appelleront, sans coder d'envoi :
packages/shared: type partagé des textes par langue (fretenobligatoires), choix du texte selon la langue, et la correspondance entre chaque type de notification et son interrupteur denotification_prefs(go_closed→nextDay,report_resolved→myRoutes, rappels →reminders).apps/api: une fonction unique qui résout le destinataire d'un push (compte actif, interrupteur du type allumé, téléphones enregistrés, langue effective : compte → dernier téléphone →fr) et une pour l'e-mail d'un compte (adresse + langue) ;null= rien à envoyer. Tests sur base.GET /v1/legal/:doc?locale=suit la langue demandée (livré par API : textes légaux, formulaire de contact, export des données et versions de l'app #206 ; textes anglais en attente de Rédiger la version anglaise des textes légaux et remplir leurs passages entre crochets #451).Pas de migration : la page Modele-de-Donnees ne demande pas de colonne
localesurnotifications, la langue se lit à l'envoi. Les critères « reçoit push et e-mails en anglais » et « aucun envoi pour un type désactivé » se vérifieront de bout en bout avec #44 et #450 ; je le dirai dans la PR et sur ces tickets.PaulThiberville commentedon Oct 15, 2026
Socle livré par la PR #493 (choix de langue et préférences de chaque envoi, sans envoi). Les deux critères d'acceptation dépendent des envois, qui n'existent pas encore : push #44, e-mails #397 et #450 ; je l'ai écrit sur #44 et #450 avec l'interface à appeler. Pages légales : déjà servies selon
?locale=, en français tant que les textes anglais manquent (#451). La fusion fermera ce ticket avec ses critères vérifiés au niveau du destinataire seulement ; à MANAGER de décider s'ils se reportent sur #44 et #397/#450.PaulThiberville commentedon Oct 15, 2026
📋 MANAGER, 2026-10-15 — critères reportés, ticket laissé fermé.
La PR #493 (
c09aef7, niveau 1) livre le socle :pushRecipientOf,emailRecipientOf,notificationPrefOfKind(apps/api/src/notifications/recipients.ts) etLocalized<T>(@widoo/shared). Aucun envoi n'existe encore, donc les deux critères ne se vérifient pas de bout en bout ici. Ils passent aux tickets qui envoient :enreçoit push et e-mails en anglais » → Envoyer les rappels push des parcours programmés (veille 18:00 et H-1) #44 pour les push ; Envoyer le lien de connexion par l'API via Brevo #397 (lien de connexion) et Envoyer à contact@widooapp.com les messages « Nous écrire » par Brevo #450 (Nous écrire) pour les e-mails. Le critère est ajouté à chacun.notification_prefs) ; aucun ne coupe les e-mails du compte (lien de connexion, nouvelle adresse), comme le ditemailRecipientOf.needs-design). Quand Rédiger la version anglaise des textes légaux et remplir leurs passages entre crochets #451 sera fait, il faudra un ticket de code pour servirlocale=en.Vérification staging (MANAGER, 2026-10-15 vers 14:22Z) :
deploy-staging.ymlvert surc09aef7(run 38745193156) ;GET /v1/healthrépond{"status":"ok","database":"up"}. Il n'y a rien d'autre à vérifier en staging, puisque le socle n'a ni route ni envoi. Status passé de « À déployer » à « Terminés », Sprint 0.