dashboard : écran Parc — synthèse, comparaison des sites, navigation (#24) #139
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!139
Loading…
Reference in a new issue
No description provided.
Delete branch "marvin/24-ecran-parc"
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 ça change
L'écran Parc : les cinq indicateurs de tête du parc au-dessus de la comparaison multi-sites, un appel
/v1/sites/{id}/mesurespar site coché — un site dont la source ne répond pas (503) n'empêche pas les autres de s'afficher. Plus la coquille commune aux pages authentifiées (colonne latérale, menu du compte) et une modale de reconnexion sur session expirée en cours de route.Base :
marvin/25-connexion-session(PR #138), dont l'écran dépend. À merger après elle.Refs #24
Preuve
Pile locale : API sur 127.0.0.1:8000 (branche de la PR #137), front sur localhost:5173.
Ecran Parc -- les quatre indicateurs de tete, la comparaison des sept sites, et
l'etat de source indisponible : Bureau Bordeaux Centre repond 503 sans empecher les
six autres de s'afficher, avec son lien Reessayer. C'est la raison d'etre d'un appel
par site plutot que d'un appel global.
Tableau des sites -- paliers du glossaire (normal, vigilance, tension, surcharge),
consommation instantanee, moyenne de periode, fraicheur. Le site muet porte des tirets
et
indisponible, jamais un zero.Rendu aux trois largeurs du ticket
Critere d'acceptation de #24. Largeur de viewport mesuree dans chaque cas
(
window.innerWidthdu cadre), pas estimee a l'oeil.Relecture
Ce qui suit le code
.env.example— voir ci-dessousOù regarder en priorité
1. Le préfixe des appels, et un piège de production qui allait avec.
sites.jsécrivait/api/v1/…en dur et ignoraitVITE_API_BASE, alors qu'authentification.jsle lit depuis toujours : deux conventions dans le même dossier. Caddy relaie enhandle_path /api/*, qui retire le préfixe, donc l'appel arrivait à l'API en/v1/sites— 404, et seulement en production, le proxy Vite conservant/api. Ce module vise désormais/v1/…et préfixe parVITE_API_BASEcomme/auth; le proxy Vite relaie/v1. Le pendant côté API est dans la PR #137.2.
.env.exampleannonçait qu'une base vide était « le bon réglage », production comprise. C'est faux et silencieux. Caddy ne relaie que/api/*; tout le reste tombe surtry_files {path} /index.html, donc/v1/sitesreçoit index.html en 200, que le front essaie de lire en JSON.VITE_API_BASE=https://app.g2.enervision/apiest obligatoire à la construction de production — c'est maintenant écrit, avec la valeur attendue.3. Deux tests neufs gardent la régression (
sites.test.js) : une base configurée préfixe bien l'appel, une base vide ne préfixe rien. Aucun test ne regardait l'origine jusqu'ici, seulement le chemin — c'est exactement pour ça que personne ne l'avait vu.Ce que cette PR ne fait pas (#24 reste ouvert) :
/alertesn'est affiché nulle part, seul le compteur de/parc/synthesel'est./graphiques→/connexiona priori.2b538a1aa4eeea397e94dashboard : �cran Parc � synth�se, comparaison des sites, navigation (#24)to dashboard : écran Parc — synthèse, comparaison des sites, navigation (#24)@marvin
La quasi totalité des critères du #24 sont respectés (en ce qui concerne le parc) à l'exception du "profil horaire" :
Le profil horaire du parc n'est qu'une polyligne de 20 px aria-hidden dans un pavé : mesuresParc est appelé mais son seul usage est décoratif, sans axe ni équivalent textuel.
Sinon petit soucis en production :
.env.example documente VITE_API_BASE mais rien ne l'applique donc la CI construit sans, et le rôle app ne construit pas le tableau de bord -> fait une assertion dans vite.config.js ?
Quelques bugs
Autres (mais problèmes mineurs)
76e295dl'a montée.T'auras aussi des conflits à régler avec la develop visiblement
corrigé !