ProjetDuMois icon indicating copy to clipboard operation
ProjetDuMois copied to clipboard

Stats géographiques : valeur à 0 lorsqu'absent du json fourni par le serveur

Open flacombe opened this issue 4 years ago • 9 comments

Je ne m'en suis pas aperçu tout de suite puisqu'il y avait toujours des stats existantes lorsque j'ai regardé.

Mon project:update passe à 3h et il s'écoule donc 3h avec une valeur inexistante le jour J dans le graph d'historique d'une zone administrative. image

Il faudrait que les graphs se tiennent à ce que le json présente pour éviter ces valeurs à 0. Il est tard je n'ai pas encore regardé le js nécessaire pour ça

flacombe avatar Mar 09 '21 00:03 flacombe

Le client n'affiche que les données qui sont renvoyées, c'est plutôt en base où il faudrait boucler sur les dates :

  • Soit jusque la fin du projet s'il est terminé
  • Soit jusqu'à la veille si le projet est en cours

PanierAvide avatar Mar 09 '21 07:03 PanierAvide

Pourtant, cette valeur à 0 n'est pas créée par la base : seul le script project:update créé des lignes dans pdm_feature_counts_per_boundary avant de mettre à jour la vue pdm_boundary_tiles (puisque la série temporelle est obtenue par un GROUP BY)

Les 0 sont bien apparus à minuit, sans que les tuiles aient même été rafraichies. Ce matin, je vide le cache et refresh les tuiles, plus de 0.

flacombe avatar Mar 09 '21 11:03 flacombe

Je constate le problème dans l'autre sens ce soir : l'affichage s'arrête au 8 mars, mais après vérification dans la tuile elle-même, j'ai bien le 9 mars aussi.

Je ne vois que cette boucle qui semble itérer sur le json fourni et il n'y a d'apparence pas de raison qu'elle s'arrête au 8 mars si le 9 est absent https://github.com/vdct/ProjetDuMois/blob/master/website/templates/components/stats.pug#L356

A noter que les dates ne sont pas ordonnées dans mes tuiles, peut-être cela joue-t-il ? (j'ai du supprimer un ORDER BY par soucis d'efficacité sans m'inquiéter de ce à quoi il servait

flacombe avatar Mar 10 '21 23:03 flacombe

C'est corrigé dans la branche feature/pr185 : https://github.com/vdct/ProjetDuMois/blob/feature/pr185/website/templates/components/stats.pug#L350

PanierAvide avatar Mar 11 '21 06:03 PanierAvide

J'ai toujours le problème du 0 ce soir :

https://enedis.openstreetmap.fr/projects/2021-01_poteaux

flacombe avatar Mar 15 '21 20:03 flacombe

Pourtant c'est sensé être géré par cette ligne https://github.com/flacombe/ProjetDuMois/blob/feature/enedis/website/templates/components/stats.pug#L353

Une condition manquante ?

PanierAvide avatar Mar 15 '21 20:03 PanierAvide

Le problème c'est que tu itères sur projectDays : on suppose qu'il y a une valeur pour chaque.

Tu filtres ensuite sur d.y != 0 || i < projectDays.length - 1, si je suis dans la plage du projet, je peux avoir un 0 et il apparaitra, alors qu'on ne voudrait pas voir ce point du tout. Dans le cas de mes tuiles, que ca s'arrête au 13/03 au lieu de montrer un 0 pour le 14/03

flacombe avatar Mar 15 '21 22:03 flacombe

Après on ne veut masque le 0 que si c'est la dernière valeur, si on a un 0 en cours de route pour une raison x ou y (suppression de masse ou autre), il faut bien la conserver. C'était le sens de cette ligne de code.

PanierAvide avatar Mar 16 '21 07:03 PanierAvide

Je suis d'accord pour afficher un 0 si tel est le cas dans les données du serveur.
Sauf que le || 0 ajoute des 0 là où il n'y en a pas.

Si il n'y a pas de valeur pour une date donnée, il ne faut rien afficher et présenter un trou si la série reprend plus tard. C'est ce qui permet de différencier les absences de dénombrement d'une suppression de masse

flacombe avatar Mar 16 '21 21:03 flacombe