Repository navigation
Noter un parcours en fin de sortie (E-15) et afficher les avis #64
Copy link
Copy link
Closed
Labels
area:mobileapps/mobileapps/mobileprio:P0BloquantBloquantstatus:readySpec complète, prêt à coderSpec complète, prêt à codertype:featureNouvelle fonctionnalitéNouvelle fonctionnalité
Milestone
Description
Contexte
Epic : #14
Maquette : E-15 · validée le 2026-09-25
Creation-et-Moderation · Ecrans · E-15, E-05, E-08 · D-002 · D-034
Comportement attendu
- API : table
route_ratings,POST /me/planned/:id/rating(exige un Go terminé, crée ou met à jour),GET /routes/:id/ratings, recalcul deroutes.stats.rating_avgetrating_count, entrée en file de modération sous 2,5 avec 5 avis. - Mobile : écran E-15 (D-029, Ecrans › E-15) : récapitulatif, note facultative, commentaire proposé une fois la note donnée (280 caractères), lieux non vérifiés, envoi différé hors ligne ; plus de note personnelle. « Notez ce parcours » dans Passés pour noter plus tard ; modification depuis Passés ; avis sur la fiche (3 derniers puis tout, D-013) ; note sur les cards. Un parcours arrêté (
stopped) ne propose pas de note. - Événement
route_rated. - Mouvement (D-030, Direction-Artistique › Mouvement,
mappings.motion) : E-15 suit M-02 (modale qui monte) et M-08 (changements d'état). - Planche 2 (D-033, Ecrans › E-15) : sortie close automatiquement à 4:00 le lendemain, E-15 ouverte par la notification du matin (Clore automatiquement les sorties à 4:00 et envoyer la notification du matin #140) ; sortie partielle ; la note s'ouvre dès que la moitié des étapes est faite, même si d'autres ont été passées ; un parcours déjà noté affiche sa note, modifiable.
- Planche 3 (D-034, Ecrans › E-15) : étoiles non choisies en contour
#7F8A9C(tokencontrol-border, 3,49:1) au lieu d'un plein gris clair, libellé de la note affiché ; texte à 150 % : tuiles et barre collée plafonnées à 1,3, titre, commentaire et lieux qui passent à la ligne, compteur « 100 / 280 » jamais coupé, « Terminer » collé en bas. Lecteur d'écran selon Ecrans › E-15 : titre en en-tête, focus dessus à l'ouverture par la notification ; tuiles en liste ; « Votre note » en groupe radio, chaque étoile « 4 sur 5, Très bien » ; champ « Un mot pour les autres, facultatif » avec son compteur ; Oui et Signaler des lieux enhitSlopjusqu'à 44 px.
Critères d'acceptation
- Impossible de noter sans Go terminé (test API)
- Une seconde réalisation met à jour la note, pas de doublon
- La moyenne sur la card reflète la note dans la seconde qui suit l'envoi (invalidation du cache)
- Chaque avis affiche sa note en chiffre après une étoile (« ★ 5 »), sur la fiche (Ecrans › E-05) comme dans la liste complète
- Terminer sans noter est possible, et « Notez ce parcours » apparaît alors dans Passés
- Aucune note personnelle, ni en base ni à l'écran
- Durées, courbes et vibrations lues dans
mappings.motionde tokens.json, aucune valeur en dur ; « Réduire les animations » respecté (D-030) - La note s'ouvre dès que la moitié des étapes est faite, même si d'autres ont été passées
- Une note existante s'affiche et se modifie
- Étoiles non choisies en contour
#7F8A9C, jamais en plein gris ; la note choisie affiche son libellé (D-034) - À 150 % de texte système : tuiles et barre collée plafonnées à 1,3, compteur « 100 / 280 » jamais coupé
- Libellés et annonces du lecteur d'écran conformes à Ecrans › E-15
- Émet
route_ratedavecroute_id,rating,has_commentetsource(go_enddepuis E-15,pastdepuis « Notez ce parcours » ou la modification dans Passés) (typé danspackages/shared/src/analytics.tsdepuis Instrumenter les événements analytics de la découverte #33) - Les notes et avis de l'utilisateur figurent dans
GET /v1/me/export(MyDataExportdanspackages/shared,users/export-activity.ts) ; le testapps/api/src/users/export.test.tspasse
Notes techniques
- Débloqué le 2026-10-16 : Construire le parcours en cours et le lien Google Maps (E-07) #42 est fermé ; « Terminer la sortie » (E-07) passe le Go
completedet ferme E-07, sans rien afficher : ce ticket y branche E-15. - Hors de ce ticket : le bloc « Lieux non vérifiés » (Oui, Signaler et la sheet « Signaler ») attend
place_signals(Enregistrer confirmations et signalements de lieux avec pondération et statuts #49) et vient avec Demander « Tout allait bien ici ? » et ouvrir la sheet « Signaler » pendant la sortie (E-07, E-15) #505. « Terminer » hors connexion côté Go : Terminer et arrêter la sortie hors connexion, remonter l'accueil au-dessus du mini-lecteur #507 ; l’envoi différé de la note et du commentaire reste ici. - Une étape passée ne compte pas comme faite et n’empêche pas de noter : la règle de la moitié se teste avec des étapes
skipped_aten base, sans attendre la route « Passer » (Exposer les routes « J'y suis » et « Passer cette étape » du parcours en cours #503).
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area:mobileapps/mobileapps/mobileprio:P0BloquantBloquantstatus:readySpec complète, prêt à coderSpec complète, prêt à codertype:featureNouvelle fonctionnalitéNouvelle fonctionnalité
Activity
IlanAMG commentedon Sep 25, 2026
D-036 (https://github.com/Inprogress-Agency/widoo-app/wiki/Design-Changelog) : « Signaler » depuis E-15 ouvre la même sheet que E-07 (voir #42).
PaulThiberville commentedon Sep 29, 2026
📋 MANAGER — critère venu de #33 : la PR #159 a typé et testé ces événements dans le catalogue strict
packages/shared/src/analytics.ts, sans les émettre, faute d'écran. L'émission revient au ticket qui construit l'écran : critère ajouté au corps de ce ticket.route_ratedavecsource(go_end,past), D-029.Détail des propriétés : Analytics › Action.
IlanAMG commentedon Sep 29, 2026
Traduction automatique (D-076, #203) : son affichage sur cet écran est livré à part, en v0.5, dans #269. Rien à ajouter ici.
PaulThiberville commentedon Oct 14, 2026
Bloqué par #42 : l'écran E-15 s'ouvre par « Terminer la sortie » du parcours en cours (E-07), que #42 construit ; dépendance
blocked_bydéclarée le 2026-10-14.PaulThiberville commentedon Oct 14, 2026
Ajout d'un critère d'acceptation, d'après une découverte de CODE sur #206 (PR #449) : l'export des données de
GET /v1/me/exportdoit couvrir toute nouvelle donnée personnelle. Le testapps/api/src/users/export.test.tséchoue dès qu'une nouvelle colonne pointe versuserssans être exportée ni écartée. ÉtendreMyDataExport(packages/shared) etusers/export-activity.tsdans ce ticket. Pour les photos : l'export ne donne aujourd'hui que les photos dont le chemin est une URLhttps; un chemin de bucket demandera une URL signée ou publique.PaulThiberville commentedon Oct 16, 2026
📋 MANAGER, 2026-10-16 — plus bloqué : son seul bloqueur, #42, est fermé (PR #502) ; la dépendance fermée reste listée pour l'historique et ne bloque plus. Les critères restent tenables sans la route « Passer » (#503) : la règle « la note s'ouvre dès la moitié des étapes faites, même si d'autres ont été passées » se teste avec
skipped_aten base.Ce qu'il attend : rien d'autre. Il porte lui-même l'API des notes (
route_ratings,POST /me/planned/:id/rating,GET /routes/:id/ratings) avec E-15. Périmètre précisé dans les notes techniques : le bloc « Lieux non vérifiés » part dans #505 (attend #49), « Terminer » hors connexion côté Go dans #507.PaulThiberville commentedon Oct 16, 2026
🔨 Démarrage — plan :
route_ratings(migration additive0015),POST /v1/me/planned/:id/rating(Gocompletedà moitié des étapes faites, une note par utilisateur et par parcours, créée ou mise à jour),GET /v1/routes/:id/ratings(avis visibles, paginés), recalcul deroutes.stats, signalementlow_rating(D-087), effacement avec le compte et export (MyDataExport).rateRoute,listRouteRatingsdanspackages/api-client.route_rated, invalidation des cards et de la fiche.Branche
issue/64-rate-route-end. Hors périmètre, selon les notes : « Lieux non vérifiés » (#505), « Terminer » hors connexion (#507). Point d'attention : Passés (E-08) n'existe pas encore (#43) ; je le signalerai dans la PR.PaulThiberville commentedon Oct 16, 2026
PR ouverte : #513 (niveau 2). Passés (E-08) n'existant pas encore, « Notez ce parcours » et la modification depuis Passés restent à monter dans #43 ; l'API et l'écran sont prêts (voir la PR).
PaulThiberville commentedon Oct 16, 2026
📋 MANAGER, 2026-10-16 — bilan de PR #513 (niveau 2, migration additive
0015_add_route_ratings, fusionnée end2a9207).Staging : deploy-staging.yml sur
d2a9207vert, étape « Migrate database » comprise ; run sur836bb50vert aussi. Status laissé en « À déployer » : la recette sur appareil et VoiceOver / TalkBack réels restent à faire (#524). Le passage en production attend l'accord de l'opérateur (niveau 2).Tenu par la PR (tests et recette sur émulateur et simulateur) : note impossible sans Go terminé, mise à jour sans doublon, moyenne des cards dans la seconde, « ★ 5 » sur la liste complète des avis, aucune note personnelle, règle de la moitié avec étapes passées, note existante modifiable, étoiles en contour
control-borderet libellé, 150 % plafonné,route_ratedtypé, export RGPD.Tenu en partie, avec renvoi :
route_ratedavecsource: past.GET /routes/:idde #36. La liste complète lit déjà l'API.