betagouv / rdv-service-public

Prise de RDV pour les services publics
https://rdv.anct.gouv.fr
GNU Affero General Public License v3.0
12 stars 2 forks source link

Show error message when no available creneau when invited with lieu preselected #4401

Open aminedhobb opened 3 days ago

aminedhobb commented 3 days ago

Closes https://github.com/betagouv/rdv-insertion/issues/2169

J'ai ouvert l'issue côté rdv-insertion parce qu'elles concernent les usagers ayant reçu une invitation, n'hésitez pas à me dire si vous voulez que j'en ouvre une côté rdv-service-public.

Contexte

Lorsque l'on invite un usager à prendre rdv via l'API de rdv-insertion (c'est le cas notamment pour le département des Bouches-du-Rhône), on laisse la possibilité lors de l'appel API de renseigner l'id du lieu vers lequel on veut inviter la personne. En effet dans les Bouches-du-Rhône le SI du conseil départemental qui gère les invitations sur toutes les structures du département a son propre système de sectorisation et préfère diriger chaque usager vers un lieu précis.

Le problème est que lorsqu'aucun créneau n'est disponible dans ce cas-là, aucun message d'erreur n'est affiché. À la place l'usager voit la page de sélection de créneau sans pouvoir choisir de créneau

Solution

Le problème vient du fait qu'à la sélection du créneau, on affiche la page de sélection sans vérifier s'il existe des créneaux disponibles au préalable. Or dans le cas mentionné au-dessus, l'usager arrive directement à la sélection du créneau. J'ajoute donc une condition pour vérifier s'il y a des créneaux de disponibles, et s'il y en a pas faire pareil que sur les autres étapes de la prise de rdv par l'usager: afficher un message expliquant qu'il n'y a plus de créneaux avec les informations de l'organisation en question si disponibles.

Previews

image

image

adipasquale commented 2 days ago

je me permets de créer une review app pour pouvoir partager des urls pour pouvoir tester facilement

adipasquale commented 2 days ago

alors j’ai fait des petites manips dans une console rails de la review app en suivant la doc en cours de redaction par @Holist (merci ça tombe à pic)

j’arrive à ce lien https://demo-rdv-solidarites-pr4401.osc-secnum-fr1.scalingo.io/prendre_rdv?departement=26&lieu_id=2&motif_category_short_name=rsa_orientation&organisation_ids=1

mais je n’y vois pas les liens retours 🤔

aminedhobb commented 2 days ago

alors j’ai fait des petites manips dans une console rails de la review app en suivant la doc en cours de redaction par @Holist (merci ça tombe à pic)

j’arrive à ce lien https://demo-rdv-solidarites-pr4401.osc-secnum-fr1.scalingo.io/prendre_rdv?departement=26&lieu_id=2&motif_category_short_name=rsa_orientation&organisation_ids=1

mais je n’y vois pas les liens retours 🤔

C'est normal il manque beaucoup d'attributs par rapport à l'exemple donné par @Holist . Aussi les ids des organisations et du lieu doivent être cohérents par rapport aux motifs. Il manque aussi le invitation_token, or les motifs de la catégorie "rsa_orientation" sur le département 26 en demo sont réservés aux usagers ayant été invités. Du coup il n'y a aucun motif qui correspond à ta recherche, c'est pour ça qu'il n'y a pas de lien de retour.

Je t'ai généré un lien avec ce qu'il manque: https://demo-rdv-solidarites-pr4401.osc-secnum-fr1.scalingo.io/prendre_rdv?departement=26&lieu_id=3&address=Dr%C3%B4me%2C+Auvergne-Rh%C3%B4ne-Alpes&organisation_ids%5B%5D=2&invitation_token=8ZUHW3JS

Il y avait des créneaux de disponibles, j'ai déplacé le premier jour de la plage d'ouverture et diminuer le délai maximum de réservation du motif pour pouvoir être dans notre cas de figure.