Analytique : un échec de montage le dit et mène à l'ancienne (STUD-1227) #1655

Merged
hermes-fusion merged 1 commit from hermes/repli-analytique-svelte into main 2026-10-15 07:45:18 +02:00
Collaborator

Cause : l'Accueil et la Semaine ont un repli quand leur Svelte ne monte pas ; l'Analytique n'en avait aucun.
Si processus/app.js échoue, #analytique-app gardait data-analytique-attente et son squelette vide
indéfiniment : la page semblait morte, sans message ni repli, alors que l'ancienne Analytique est servie et marche.

Remède

  • tableau.js : window.analytiqueEchec, calqué sur accueilEchec — au bout de 8 s sans montage, le squelette est
    remplacé par une phrase (role="status") et un lien « Ouvrir l'ancienne Analytique ».
  • tableau.js : le lien ouvre l'onglet caché par window.ouvrirOnglet. Mesuré dans Chromium sans tête AVANT ce
    correctif : t.click() sur #o-ancien-analytique ne faisait rien (seuls les onglets visibles de la barre portent
    un gestionnaire), donc le lien avalait le clic sans ouvrir l'ancien panneau.
  • tableau-bord.py : l'onerror de processus/app.js appelle window.analytiqueEchec, comme les trois autres onglets.
  • Banc navigateur _tableau/test_navigateur_repli_analytique.py : l'échec (phrase + lien + clic qui ouvre
    #p-analytique-ancien), un onglet monté qui n'est jamais annoncé en échec, une page sans place de montage qui ne
    lève pas, et l'onerror qui porte bien le repli de l'Analytique.

Preuves

  • python3 _tableau/test_navigateur_repli_analytique.py -> « navigateur : l'Analytique en échec le dit et mène à
    l'ancienne — chromium », code 0. Sur origin/main (même banc, avant le correctif) : phrase: False,
    attenteApres: True — le squelette reste vide.
  • python3 _tableau/lancer-tests.py --tout -> 160 bancs verts, code 0.
  • python3 _tableau/garde_fous.py -> « garde-fous : rien à redire », code 0.
  • npx vitest run -> 23 fichiers, 179 tests, code 0 ; npx vite build -> dist/index.html (1 804 o) et 13 JS > 5 Ko, 903 Ko au total.
  • Captures de la page rendue (rendu-fige.py) : analytique-{sombre,clair}-{1600,390}.png, la phrase et le lien
    visibles dans les deux thèmes et aux deux largeurs.

Écart connu, hors de cette carte : les replis de l'Accueil (accueilEchec) et de l'Atelier (atelierEchec)
ont le même défaut de clic (même t.click() sur un onglet caché). Une carte de suite est ouverte.

Ne pas fusionner : la fusion est réservée à l'opérateur.

Cause : l'Accueil et la Semaine ont un repli quand leur Svelte ne monte pas ; l'Analytique n'en avait aucun. Si `processus/app.js` échoue, `#analytique-app` gardait `data-analytique-attente` et son squelette vide indéfiniment : la page semblait morte, sans message ni repli, alors que l'ancienne Analytique est servie et marche. Remède - `tableau.js` : `window.analytiqueEchec`, calqué sur `accueilEchec` — au bout de 8 s sans montage, le squelette est remplacé par une phrase (`role="status"`) et un lien « Ouvrir l'ancienne Analytique ». - `tableau.js` : le lien ouvre l'onglet caché par `window.ouvrirOnglet`. Mesuré dans Chromium sans tête AVANT ce correctif : `t.click()` sur `#o-ancien-analytique` ne faisait rien (seuls les onglets visibles de la barre portent un gestionnaire), donc le lien avalait le clic sans ouvrir l'ancien panneau. - `tableau-bord.py` : l'`onerror` de `processus/app.js` appelle `window.analytiqueEchec`, comme les trois autres onglets. - Banc navigateur `_tableau/test_navigateur_repli_analytique.py` : l'échec (phrase + lien + clic qui ouvre `#p-analytique-ancien`), un onglet monté qui n'est jamais annoncé en échec, une page sans place de montage qui ne lève pas, et l'`onerror` qui porte bien le repli de l'Analytique. Preuves - `python3 _tableau/test_navigateur_repli_analytique.py` -> « navigateur : l'Analytique en échec le dit et mène à l'ancienne — chromium », code 0. Sur `origin/main` (même banc, avant le correctif) : `phrase: False`, `attenteApres: True` — le squelette reste vide. - `python3 _tableau/lancer-tests.py --tout` -> 160 bancs verts, code 0. - `python3 _tableau/garde_fous.py` -> « garde-fous : rien à redire », code 0. - `npx vitest run` -> 23 fichiers, 179 tests, code 0 ; `npx vite build` -> `dist/index.html` (1 804 o) et 13 JS > 5 Ko, 903 Ko au total. - Captures de la page rendue (`rendu-fige.py`) : `analytique-{sombre,clair}-{1600,390}.png`, la phrase et le lien visibles dans les deux thèmes et aux deux largeurs. Écart connu, hors de cette carte : les replis de l'**Accueil** (`accueilEchec`) et de l'**Atelier** (`atelierEchec`) ont le même défaut de clic (même `t.click()` sur un onglet caché). Une carte de suite est ouverte. Ne pas fusionner : la fusion est réservée à l'opérateur.
Analytique : un échec de montage le dit et mène à l'ancienne (STUD-1227)
All checks were successful
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (push) Successful in 17s
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (push) Successful in 12s
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (pull_request) Successful in 15s
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (pull_request) Successful in 12s
b1aa67180b
Cause : l'Accueil et la Semaine avaient un repli quand leur Svelte ne monte
pas ; l'Analytique n'en avait aucun. Si `processus/app.js` échoue, `#analytique-app`
gardait `data-analytique-attente` et son squelette vide indéfiniment : la page
semblait morte, sans message ni repli, alors que l'ancienne Analytique est servie
et marche.

Remède :
- tableau.js : `window.analytiqueEchec`, calqué sur `accueilEchec` — au bout de 8 s
  sans montage, le squelette est remplacé par une phrase (`role="status"`) et un
  lien « Ouvrir l'ancienne Analytique » ;
- tableau.js : le lien ouvre l'onglet caché par `window.ouvrirOnglet`. `t.click()`
  ne suffisait pas : seuls les onglets VISIBLES de la barre reçoivent un
  gestionnaire, donc le clic sur `#o-ancien-analytique` ne faisait rien et le lien
  avalait le clic (mesuré dans Chromium sans tête, avant correctif) ;
- tableau-bord.py : l'`onerror` du module `processus/app.js` appelle
  `window.analytiqueEchec`, comme les trois autres onglets ;
- banc navigateur `test_navigateur_repli_analytique.py` : l'échec (phrase, lien,
  clic qui ouvre `#p-analytique-ancien`), un onglet monté qui n'est jamais annoncé
  en échec, et une page sans place de montage qui ne lève pas. Il exécute le vrai
  `tableau.js` et la place de montage rendue par `analytique_donnees`, sans recopie.
hermes-fusion deleted branch hermes/repli-analytique-svelte 2026-10-15 07:45:18 +02:00
Collaborator

Fusionnée automatiquement par fusion-auto (forge) : CI verte (Rust et Front Svelte), PR relue (étiquette relu), sans conflit.

Fusionnée automatiquement par `fusion-auto` (forge) : CI verte (Rust et Front Svelte), PR relue (étiquette `relu`), sans conflit.
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
foXaCe/studio!1655
No description provided.