dashboard : les ecrans de surveillance se rafraichissent seuls (#196) #209
No reviewers
Labels
No labels
Compat/Breaking
EC01
EC02
EC03
EC04
EC05
EC06
Kind/BDD
Kind/Back
Kind/Bug
Kind/CICD
Kind/Cloud
Kind/Contenu
Kind/Data
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Front
Kind/IA
Kind/Infra
Kind/Monitoring
Kind/Security
Kind/Testing
Portée/Post-jury
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
ops/alerte
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
g2/enervision!209
Loading…
Reference in a new issue
No description provided.
Delete branch "marvin/196-rafraichissement-tableau-de-bord"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Ce que la PR fait
Les ecrans de surveillance du tableau de bord ne se rafraichissaient jamais
seuls : ils chargeaient a l'ouverture et rien ne repartait. Un ecran laisse
ouvert affichait un etat perime sans le dire — et d'abord sur l'heure, puisque
derniere_releveporte l'heure reelle depuis le #179 : sur un ecran ouvertdepuis une heure, elle donnait a croire que la collecte s'etait arretee.
Le battement
surRafraichissement(recharger)rejoue les appels de l'ecran toutes lesminutes, et une fois de plus au retour de l'onglet au premier plan. Rien ne
part quand l'onglet est en arriere-plan (
document.visibilityState) : septsites n'interrogent pas l'API toute la nuit pour un ecran que personne ne
regarde. La minuterie suit le cycle de vie de la vue.
Rejouer sans vider
Parc, Site, Qualite et Alertes gagnent un
rafraichir(): un bloc deja rempline repasse pas par « chargement », et s'il echoue il garde sa derniere valeur.
EtatRafraichissement, sous le titre, dit l'heure du dernier cycle reussi, ou« Actualisation impossible — donnees de 14:03 » quand le dernier a echoue.
Periode ecrite une seule fois
Les profondeurs d'affichage (24 h / 7 j / 30 j), recopiees dans
GraphiquesViewet
ComparaisonView, passent danssrc/periodes.js.Verification
npm run test:unit: 438 tests, tous verts (dont 14 propres au rafraichissement).npm run build: ok.Hors perimetre (le ticket le pose)
Base
Empilee sur
marvin/184-refonte-tableau-de-bord(PR #207), dont elle depend(elle retouche les vues et les depots que #184 refond). A recibler sur
developune fois #207 fusionnee.
Relecture ciblée « bloquant seulement » (J-1)
J'ai regardé le commit propre à cette demande (
a4f9655, 21 fichiers) et laissé de côté ce qui vient de la #207.Aucun défaut critique dans le code du #196. Rien qui casse la construction, la chaîne ou la mise en production.
Ce que j'ai vérifié
a4f9655: les quatre jobs de l'exécution 586 sont au vert, Python compris.npm ci, node 24.14) :npm run test:unit→ 438 tests, 41 fichiers, tous verts ;npm run buildavecVITE_API_BASE→ ok.setIntervalposé suronMounted, retiré suronUnmountedavec l'écouteurvisibilitychange. Vue démonte l'ancienne vue avant de monter la nouvelle, donc pas deux battements simultanés en changeant d'écran.douxne peut pas vider un écran qui allait bien. Les quatre dépôts (graphique,qualite,site) gardent la valeur affichée quand le statut est déjàpret, et rendentfalse— le verdict remonte bien jusqu'àEtatRafraichissement./auth. Un 401 sur une route de données appelle seulementsignalerExpiration(): il ne déclenche aucunPOST /auth/refresh. Le limiteur 429 du routeur d'authentification n'est donc pas exposé au battement à la minute.--ev-erreur-600,--ev-mention-taille,--ev-ink-500,--ev-espace-08dansjetons.css).services/dashboard/: aucun impact chaîne, API, infra ou déploiement.Le seul point bloquant, et il n'est pas dans le code
La base de la demande est
develop, mais la branche porte encore les cinq commits de la #207.git log develop..marvin/196en rend six : les cinq du #184 puis celui du #196. Fusionner cette demande telle quelle fait donc entrer la #207 dansdevelopen même temps, sans qu'elle ait été relue — ce que la description elle-même veut éviter (« À recibler surdevelopune fois #207 fusionnée »).Rien à corriger sur la branche : c'est un ordre de fusion, pas un correctif. #207 d'abord, cette demande ensuite. Une fois la #207 fusionnée, le diff de celle-ci retombe à ses 21 fichiers et elle part telle quelle.
Deux remarques non bloquantes, pour après la soutenance
chargementderrière la modale de reprise. Si la session expire pendant le chargement initial (statutattente), le battement suivant passe le bloc àchargementpuis, l'appel échouant en 401,_echec(..., doux)sort sans reposerattente: le bloc reste sur son squelette. C'est couvert par la modale de reprise, et la reconnexion recharge en mode non-doux, donc ça se répare tout seul — mais la gardedoux && statut === 'pret'gagnerait à traiterattentecomme un cas à part.estExpirationcompte comme un succès dans les valeurs de retourdoux:EtatRafraichissementaffiche « Actualisé à HH:MM » alors que rien n'est revenu. Là encore invisible sous la modale, mais l'horodatage ment le temps qu'elle est là.Rien de tout cela ne justifie de retenir la fusion.
Approuvé.
Portée de cette approbation : le commit
a4f9655seul — le rafraîchissement périodique, les 21 fichiers du #196. Les cinq commits du #184 que la branche porte encore relèvent de la #207 et sont relus là-bas ; je ne les couvre pas ici.Le détail de la relecture est dans mon commentaire précédent. En bref : CI verte sur les quatre jobs, 438 tests unitaires rejoués en local sur un arbre neuf, construction ok, minuterie et écouteur
visibilitychangeretirés au démontage, modedouxincapable de vider un écran qui répond, et aucun appel supplémentaire vers/auth(donc le limiteur 429 n'est pas exposé au battement à la minute). Rien de bloquant.À fusionner après la #207, sans quoi celle-ci entre dans
developpar la bande.New commits pushed, approval review dismissed automatically according to repository settings