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

remplacement de frappe-charts par Chartkick + Chart.js #937

Merged
merged 3 commits into from
May 30, 2023

Conversation

adipasquale
Copy link
Contributor

@adipasquale adipasquale commented May 29, 2023

Le point de départ de cette PR est que frappe-charts est un des derniers obstacles pour activer les règles CSP strictes pour empecher les inline styles. En effet ce package JS ne gère pas ça bien et a priori ça ne va pas être corrigé bientôt cf frappe/charts#378

J’avais pour l’instant mis des exceptions avec les hashes des fichiers de frappe-charts dans les regles CSP. C’est sous optimal car ça n’avait pas l’air de fonctionner dans tous les cas : il reste ces erreurs Sentry. Cela demandait aussi de penser à mettre à jour ces hashes de fichiers à chaque MaJ de la lib.

Pour que ça fonctionne en prod je pense qu’il aurait fallu générer le hash du fichier bundlé application.js , càd le mettre à jour à chaque changement de quoi que ce soit dans le JS ou nos dépendences.

Cette PR contourne ce problème en se passant complètement de frappe-charts et en le remplaçant par Chart.js qui semble plus populaire et (j’espère) mieux se comporter avec les CSP.

Tant qu’à faire j’ai ajouté la gem chartkick qui est un wrapper coté vues Rails pour simplifier l’utilisation de la lib JS. Ce n’est pas indispensable, mais elle n’a pas de dépendences et elle réduit quand même un peu le boilerplate (en contrepartie de rajouter un niveau d’indirection).

Frappe-charts était utilisé à deux endroits, et uniquement sur l’interface conservateurs :

  • page vue d’un département : nombre d’objets par état sanitaire
  • page vue d’une campagne : nombre de communes par état d’avancement + nombre d’objets par état d’avancement (recensés ou pas)
Avant Après
Screenshot 2023-05-29 at 16 56 44 Screenshot 2023-05-29 at 18 59 17
Screenshot 2023-05-29 at 16 55 21 Screenshot 2023-05-29 at 19 20 07

La visualisation change un peu, j’ai essayé de limiter au max les changements.
C’est plutot plus lisible qu’avant avec les légendes écrites en entier. En revanche c’est un peu moche avec les différentes couleurs de polices, mais j’ai passé un moment à essayer de le configurer sans succès.

@adipasquale adipasquale marked this pull request as ready for review May 29, 2023 17:30
@adipasquale adipasquale merged commit c578afd into main May 30, 2023
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.

1 participant