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 les rappels push des parcours programmés (veille 18:00 et H-1) #44
Table notifications, enregistrement des jetons push (POST /me/devices), endpoint interne /internal/reminders appelé par Cloud Scheduler toutes les 15 min, envoi FCM via Expo, respect des préférences.
Mobile : réception, tap → ouvre E-07 ; événements reminder_received, reminder_tapped.
Critères d'acceptation
Test : un parcours programmé dans 23 h déclenche exactement un rappel J-1
Désactiver les rappels dans le profil stoppe l'envoi
changed the title [-]Envoyer les rappels push J-1 et H-1 des parcours programmés[/-][+]Envoyer les rappels push des parcours programmés (veille 18:00 et H-1)[/+]on Sep 25, 2026
D-061 (https://github.com/Inprogress-Agency/widoo-app/wiki/Design-Changelog) : lire l'état réel des notifications du système pour la ligne « Notifications — Désactivées » des Réglages (E-09) et la ligne « Rappels désactivés » de Votre sortie (E-08) ; geste d'échappement sur la sheet des rappels = « Plus tard ».
D-062 (https://github.com/Inprogress-Agency/widoo-app/wiki/Design-Changelog) : respecter notification_prefs (reminders pour la veille et H-1 ; next_day pour la notification de 10:00 après une sortie, go_closed) et envoyer dans la langue effective (users.locale, sinon langue du téléphone de POST /me/devices). Dépend de #197 ; modèles traduits dans #199.
📋 MANAGER, 2026-10-15 — à inclure dans ce ticket (découverte de CODE pendant #189, PR #484) : l'app ne déclare pas android.permission.POST_NOTIFICATIONS. Sur Android 13 et plus elle ne peut pas notifier, et Réglages › Notifications (E-19) affiche toujours l'encart « coupées » avec des interrupteurs inactifs. À faire avec le module de notifications : déclarer la permission, la demander au premier « Programmer » (E-18, « Recevoir un rappel ? »), lire l'état sur iOS (getPermissionsAsync, D-061) et remplacer readPhoneNotifications (apps/mobile/src/settings/phoneNotifications.ts). Ce ticket est area:api : si la part mobile dépasse une session, la sortir en ticket area:mobile lié.
Depuis #199 (PR #493) : les rappels doivent résoudre leur destinataire par pushRecipientOf(db, userId, 'reminders') (apps/api/src/notifications/recipients.ts), qui renvoie { locale, pushTokens } ou null si l'interrupteur « Rappels » est coupé, le compte supprimé ou sans téléphone. Les textes du push s'écrivent en Localized<T> (@widoo/shared), fr et en, et l'envoi prend texts[locale]. Même chose pour go_closed et report_resolved, avec notificationPrefOfKind[kind]. Les critères de #199 « un utilisateur en reçoit les push en anglais » et « aucun envoi pour un type désactivé » se vérifieront de bout en bout ici.
📋 MANAGER, 2026-10-15 — partage avec #495, ce qui précise mon commentaire de 13:32Z. Ce ticket garde le module de notifications côté mobile : expo-notifications, le droit aps-environment, la déclaration android.permission.POST_NOTIFICATIONS, l'enregistrement du jeton (POST /me/devices), la réception et l'ouverture de E-07 au tap. La sheet « Recevoir un rappel ? » du premier « Programmer », la demande d'autorisation, « Rappels désactivés » (E-08) et le remplacement de readPhoneNotifications passent à #495, qui est déclaré bloqué par ce ticket.
Deux critères de #199 sont aussi ajoutés ici, parce que #199 n'a livré que le socle (PR #493) : les rappels push dans la langue effective, et aucun push pour un type désactivé.
Activity
IlanAMG commentedon Sep 25, 2026
D-035 (https://github.com/Inprogress-Agency/widoo-app/wiki/Design-Changelog) : rappels la veille à 18:00 et une heure avant le départ.
[-]Envoyer les rappels push J-1 et H-1 des parcours programmés[/-][+]Envoyer les rappels push des parcours programmés (veille 18:00 et H-1)[/+]IlanAMG commentedon Sep 28, 2026
D-060 (https://github.com/Inprogress-Agency/widoo-app/wiki/Design-Changelog) : au premier « Programmer », sheet « Recevoir un rappel ? » (montrée une seule fois) puis fenêtre du système ; refus sans blocage. Dans « Votre sortie » (E-08) : ligne « Rappels désactivés » avec « Activer », qui ouvre la fenêtre du système ou les réglages du téléphone. Maquettes : https://github.com/Inprogress-Agency/widoo-app/wiki/Ecrans#e-18--premier-lancement et design/E-08/2026-09-28-rappels-desactives.png.
IlanAMG commentedon Sep 28, 2026
D-061 (https://github.com/Inprogress-Agency/widoo-app/wiki/Design-Changelog) : lire l'état réel des notifications du système pour la ligne « Notifications — Désactivées » des Réglages (E-09) et la ligne « Rappels désactivés » de Votre sortie (E-08) ; geste d'échappement sur la sheet des rappels = « Plus tard ».
IlanAMG commentedon Sep 28, 2026
D-062 (https://github.com/Inprogress-Agency/widoo-app/wiki/Design-Changelog) : respecter
notification_prefs(reminderspour la veille et H-1 ;next_daypour la notification de 10:00 après une sortie, go_closed) et envoyer dans la langue effective (users.locale, sinon langue du téléphone dePOST /me/devices). Dépend de #197 ; modèles traduits dans #199.PaulThiberville commentedon Oct 15, 2026
📋 MANAGER, 2026-10-15 — à inclure dans ce ticket (découverte de CODE pendant #189, PR #484) : l'app ne déclare pas
android.permission.POST_NOTIFICATIONS. Sur Android 13 et plus elle ne peut pas notifier, et Réglages › Notifications (E-19) affiche toujours l'encart « coupées » avec des interrupteurs inactifs. À faire avec le module de notifications : déclarer la permission, la demander au premier « Programmer » (E-18, « Recevoir un rappel ? »), lire l'état sur iOS (getPermissionsAsync, D-061) et remplacerreadPhoneNotifications(apps/mobile/src/settings/phoneNotifications.ts). Ce ticket estarea:api: si la part mobile dépasse une session, la sortir en ticketarea:mobilelié.PaulThiberville commentedon Oct 15, 2026
Depuis #199 (PR #493) : les rappels doivent résoudre leur destinataire par
pushRecipientOf(db, userId, 'reminders')(apps/api/src/notifications/recipients.ts), qui renvoie{ locale, pushTokens }ounullsi l'interrupteur « Rappels » est coupé, le compte supprimé ou sans téléphone. Les textes du push s'écrivent enLocalized<T>(@widoo/shared),freten, et l'envoi prendtexts[locale]. Même chose pourgo_closedetreport_resolved, avecnotificationPrefOfKind[kind]. Les critères de #199 « un utilisateurenreçoit les push en anglais » et « aucun envoi pour un type désactivé » se vérifieront de bout en bout ici.PaulThiberville commentedon Oct 15, 2026
📋 MANAGER, 2026-10-15 — partage avec #495, ce qui précise mon commentaire de 13:32Z. Ce ticket garde le module de notifications côté mobile :
expo-notifications, le droitaps-environment, la déclarationandroid.permission.POST_NOTIFICATIONS, l'enregistrement du jeton (POST /me/devices), la réception et l'ouverture de E-07 au tap. La sheet « Recevoir un rappel ? » du premier « Programmer », la demande d'autorisation, « Rappels désactivés » (E-08) et le remplacement dereadPhoneNotificationspassent à #495, qui est déclaré bloqué par ce ticket.Deux critères de #199 sont aussi ajoutés ici, parce que #199 n'a livré que le socle (PR #493) : les rappels push dans la langue effective, et aucun push pour un type désactivé.