Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nouveau mode de fonctionnement en prévision de l'éligibilité 18+ : introduction du calendrier des créneaux #233

Merged
merged 57 commits into from
Jul 25, 2021

Conversation

fcamblor
Copy link
Collaborator

@fcamblor fcamblor commented May 25, 2021

Cette Pull Request est

  • Un correctif
  • Une nouvelle fonctionnalité

Description

L'idée de cette PR est de fournir plusieurs changements sur le formulaire de recherche VMD du fait de l'ouverture à un public bien plus large à la vaccination le 31 Mai.

Les changements majeurs effectués dans cette PR :

  • Affichage d'un bandeau affichant les créneaux disponibles par jour, et permettant de sélectionner un jour en particulier pour la prise de rdv (par défaut, le jour le plus proche avec des disponibilités est sélectionné)
  • Du fait de ce nouveau champ, suppression du critère de tri (lorsqu'on est en recherche par commune, il n'est plus opportun de laisser le choix à l'utilisateur de trier par date de première dispo puisqu'il a dorénavant le calendrier qui auto-sélectionne le premier jour avec des créneaux disponibles)
  • Affichage d'un filtre supplémentaire permettant de sélectionner un type de vaccin spécifique à la tranche 18-55 (vaccins à base d'ARNm) versus "tous les vaccins". Étant donné que le plus gros des utilisateurs à venir seront vraisemblablement dans la tranche 18-55, pré-selection de ce critère.
    À noter : si aucun calendrier n'est fourni dans le JSON (c'est le cas pour la plupart des communes, sauf celles du 33 et du 17 ainsi que leur départements limitrophes), le bandeau des jours ainsi que le filtre sur le type de vaccin n'apparaîtront pas car il est alors impossible de connaître une répartition par jours des créneaux de type ARNm/Tous
  • Le bandeau jours + le critère type de vaccin ne sont évidemment pas affichés sur l'onglet chronodose, qui a une configuration spécifique pour ça (créneaux sur aujourd'hui+demain, et vaccins ARNs uniquement)
  • Un filtre permettant d'ajuster la distance de recherche a été mis à disposition, sur les 2 onglets recherche standard / chronodose

Fonctionnalités visibles ici : https://dev.vitemado.se/disponibilite-generale/

Vaccination_COVID-19_à_Villenave-d_Ornon_33140

Vaccination_COVID-19_en_Gironde_33

Vaccination_COVID-19_à_Paris_75001

⚠️ Pour le moment, le back ne mettant pas à disposition les données, un mock de ces dernières (dans le format évoqué dans CovidTrackerFr/vitemadose#519) a été hardcodé sur cette branche.
Ça signifie que les données n'évolueront pas dans le temps, et cela explique aussi pourquoi vous verrez sûrement un calendrier avec des dates dans le passé (dans la vraie vie, ça ne se passera pas comme ça)

Fix #96

Copy link
Collaborator

@nhumblot nhumblot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bravo c'est vraiment bien. 👏 👍

Ça marche bien à l'usage. Deux trois ajustement au niveau graphique à terme. Peut-être retirer complètement la gestion chronodose à terme ?

J'ai ajouté un petit changement pour que ce soit fonctionnel sur localhost, j'avais des erreurs 404 sur mon poste. J'ai ajouté un petit check sur la méthode upperFirst au cas où on reçoive à terme des données bizarres (on a déjà eu le cas par le passé).

Félicitations en tout cas. 🙂

return this.options.length-1;
}
@internalProperty() get bubbleLeft() {
const percentageValue = Math.round(this.indexOptionSelectionnee*10000/this.max)/100;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Un détail (à négliger ?) car les options sont hardcodées dans vmd-rdv-view.ts mais si on venait à définir une seule option on aurait une division par zéro.

if(daySelectorDisponible) {
return creneauxPourLieu?creneauxPourLieu.creneaux.filter(cbt => cbt.tags.includes('preco18_55')).length:0;
}
throw new Error("We're not supposed to call cardAppointmentsExtractor() on 18_55 without day selector !")
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ça me semble bien car je n'ai pas vu de situation où je pouvais être en 18_55 sans sélectionner une journée. Mais j'ai l'impression que c'est également le cas en mode standard, est-ce qu'on ne devrait pas avoir une logique similaire aussi pour 'standard' ? J'ai l'impression qu'on n'a pas de situation où on n'a pas sélectionné de date. 🤔

@fcamblor fcamblor force-pushed the disponibilite-generale branch from 1463fdd to ebb38a7 Compare May 26, 2021 00:14
@fcamblor
Copy link
Collaborator Author

fcamblor commented May 26, 2021

J'ai des problèmes sur mobile où le slider ne s'affiche / ne fonctionne pas :(

EDIT: fixé dans c5a968f

@fcamblor fcamblor force-pushed the disponibilite-generale branch from ebb38a7 to ecc4a10 Compare May 26, 2021 00:49
@francoisBouchet
Copy link

hier soir je m'étais amusé à faire les blocs jours, si des fois il y a des trucs qui peuvent t'intéresser pour "raffiner" Frédéric, enjoy.

html Day2Day-Francois.zip

@fcamblor
Copy link
Collaborator Author

fcamblor commented May 26, 2021

@francoisBouchet j'ai fait quelques modifs ce soir pour intégrer tes remarques remontées dans mattermost : cf 1ad3b85 4860c7b 79775d0

Ça donne ça :
Vaccination_COVID-19_à_Villenave-d_Ornon_33140

@fcamblor
Copy link
Collaborator Author

fcamblor commented Jun 3, 2021

On utilise le même code couleur et visuel pour deux blocs qui ne se comportent pas de la même manière : le bouton prendre rendez-vous, et le jour sélectionné dans le calendrier).

@francoisBouchet @Luwangel
Que dites-vous de :
Vaccination_COVID-19_à_Paris_75001

Peut-être un poil trop pâle non ?

(en effet, avoir une couleur différente du mauve, mais sans opacité, serait sûrement mieux ... des idées ?)

@Luwangel
Copy link
Collaborator

Luwangel commented Jun 7, 2021

On utilise le même code couleur et visuel pour deux blocs qui ne se comportent pas de la même manière : le bouton prendre rendez-vous, et le jour sélectionné dans le calendrier).

@francoisBouchet @Luwangel
Que dites-vous de :
Vaccination_COVID-19_à_Paris_75001

Peut-être un poil trop pâle non ?

(en effet, avoir une couleur différente du mauve, mais sans opacité, serait sûrement mieux ... des idées ?)

En fait tu n'as pas besoin d'indiquer en couleur le jour courant, puisqu'il s'agit par défaut du jour le plus à gauche libre. La même interface que ce que tu proposes sans le mauve autours du vendredi me semble parfaite.

Sur airbnb, les jours non réservables sont de la même couleur que les jours dans le passé. Et ça me semble assez clair finalement.

Sélection_001

@fcamblor
Copy link
Collaborator Author

fcamblor commented Jun 7, 2021

Le jour en mauve foncé c'est pas le jour courant, c'est le jour sélectionné :-)

Légende :

  • gris = 0 créneaux
  • mauve foncé = jour sélectionné
  • blanc = jour sélectionnable
  • blanc avec contour mauve clair = hover sur jour sélectionnable

selected: this.dateSelectionnee === cq.date,
selectable: this.isSelectable(cq),
empty: this.dateSelectionnee !== cq.date && appointmentCount === 0
})}" @click="${() => this.jourSelectionne(cq)}">
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hello, pour un peu plus d'accessibilité (testé avec TalkBack - chrome/android)

Suggested change
})}" @click="${() => this.jourSelectionne(cq)}">
})}" @click="${() => this.jourSelectionne(cq)}"
@keydown="${(e:KeyboardEvent) => e.key === 'Enter' && this.jourSelectionne(cq)}"
role="button" tabindex="0">

a2br and others added 5 commits June 21, 2021 08:48
Ceci n'est qu'une recommendation, pas une obligation. Sinon, reformuler différemment. Source: https://www.service-public.fr/particuliers/actualites/A14722
- Il faut avoir + de 12 ans
- Suppression du reste, qui était redondant face au 1er point
- ajout de la balise sémantique time pour l'accessibilité
- le bloc est maintenant plus compact
- correction d'une erreur dans l'URL affichée
Je n'ai pas vraiment d'avis tranché sur l'orthographe de ce mot, je corrige juste l'incohérence : partout ailleurs on met un tiret. (pas vraiment en lien avec la PR, mais j'en profite)
@mccob
Copy link

mccob commented Jul 12, 2021

Bonsoir,

Cette PR est-elle toujours prévue ?

@fcamblor
Copy link
Collaborator Author

fcamblor commented Jul 13, 2021

Oui, mais elle nécessite pas mal d'alignements (prise en compte du nouveau fichier sur tous les scrappers de toutes les plateformes) sur le back (et bloque pas mal les développements sur le front en attendant, vu les impacts que cela a)

Copy link
Collaborator

@Floby Floby left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

C'est top ! je suis content de voir que ça fonctionne avec toutes les plateforme que Sacha a rajouté =)

Ça donne plein d'idées de trucs qui pourraient être un chouïa mieux, mais moi je dis ça ship. Les 2 trucs qui vont avoir de l'importance rapidement pour moi c'est de s'assurer qu'une description accessible du jour selectionné est disponible (mais je laisse @bilelz dire comment parce que je suis nul) et pouvoir arriver directement sur un jour selectionné via la navigation mais evidemment il y a plein de cas aux limites.

@fcamblor fcamblor changed the title Nouveau mode de fonctionnement en prévision de l'éligibilité 18+ Nouveau mode de fonctionnement en prévision de l'éligibilité 18+ : introduction du calendrier des créneaux Jul 21, 2021
fcamblor and others added 2 commits July 21, 2021 19:12
@fcamblor
Copy link
Collaborator Author

Merci @Floby pour les propositions :)

@fcamblor
Copy link
Collaborator Author

fcamblor commented Jul 24, 2021

Je viens de pusher une nouvelle version de la feature :

  • Suppression du critère de recherche sur le type de vaccin (car aujourd'hui, plus aucune injection d'AZ ne semble faite, et J&J reste extrêmement minoritaire dans son utilisation)
  • J'ai fait en sorte de "fusionner" les jours sans créneau dispos dans le calendrier dès lors :
    • Qu'on a au moins 3j consécutifés sans créneau dispo
    • Le premier jour restera systématiquement affiché
    • Les jours suivants seront remplacés par une entrée "Jours sans créneaux", cliquable (si cliquée, les jours sans créneau sont alors affichés)

Vaccination_COVID-19_à_Villenave-d_Ornon_33140

Une fois cliqué :
Vaccination_COVID-19_à_Villenave-d_Ornon_33140

@fcamblor fcamblor merged commit d2f46e4 into dev Jul 25, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Rajouter un filtre permettant de customiser le rayon de recherche
8 participants