From fd9df60788d30dddd7b3e3e2aee3fda6e946f859 Mon Sep 17 00:00:00 2001 From: bruno Date: Wed, 28 Oct 2026 15:59:41 -0400 Subject: [PATCH 1/2] Barre : texte de chantier 5 hors commentaire Jinja supprime du rendu (5e onglet + menu marque intacts) --- app/templates/_draco_bar.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/templates/_draco_bar.html b/app/templates/_draco_bar.html index 7ef9650..4555dbe 100644 --- a/app/templates/_draco_bar.html +++ b/app/templates/_draco_bar.html @@ -5,10 +5,10 @@ CSS/JS : /static/css/draco-barre.css, /static/js/vendor/draco-barre.js. v7.82.0 (dev/prod) : les href des onglets ne sont plus figés — l'hôte les injecte depuis sa config (draco_urls(), noms officiels - par défaut, noms en -dev déclarés dans le .env de l'environnement). #} - Chantier 5 (fusion #69/#71, sans bump) : 5e onglet Console Spark - (data-app="agent", draco_urls().agent), après Kanbante ; l'entrée - « Console Spark » du menu de la marque est conservée. + par défaut, noms en -dev déclarés dans le .env de l'environnement). + 5e onglet Console Spark (data-app="agent", draco_urls().agent), + après Kanbante ; l'entrée « Console Spark » du menu de la marque + est conservée (menu construit par draco-barre.js depuis les onglets). #}
-- 2.54.0 From 1e552a55a443580c49528a623a349e0e196c0795 Mon Sep 17 00:00:00 2001 From: bruno Date: Wed, 28 Oct 2026 15:59:44 -0400 Subject: [PATCH 2/2] Tests : aucun texte de chantier rendu par la barre, onglets intacts --- tests/test_draco_bar_texte.py | 48 +++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 tests/test_draco_bar_texte.py diff --git a/tests/test_draco_bar_texte.py b/tests/test_draco_bar_texte.py new file mode 100644 index 0000000..51c5945 --- /dev/null +++ b/tests/test_draco_bar_texte.py @@ -0,0 +1,48 @@ +"""Barre d'apps Flowdeck : aucun texte de chantier rendu hors commentaire. + +Defaut 5 : les lignes « Chantier 5 (fusion #69/#71, sans bump) : ... » +etaient placees APRES la fermeture `#}` du commentaire Jinja d'en-tete +de `app/templates/_draco_bar.html` (lignes 9-11) : elles etaient donc +rendues telles quelles, juste au-dessus du
de la barre, sur +toutes les pages (la barre est incluse par base.html). + +Test sans dependance (lecture du gabarit seul, comme +test_draco_alertes.py) : il tourne sans serveur ni base, donc aussi +en sandbox. La note documentaire peut vivre DANS le commentaire Jinja +(jamais rendu) ; elle ne doit jamais en sortir. +""" + +import re +from pathlib import Path + +ROOT = Path(__file__).resolve().parent.parent + + +def _hors_commentaires(texte): + """Texte du gabarit sans les commentaires Jinja {# ... #}.""" + return re.sub(r"\{#.*?#\}", "", texte, flags=re.S) + + +def test_aucun_texte_chantier_rendu(): + gabarit = (ROOT / "app/templates/_draco_bar.html").read_text() + rendu = _hors_commentaires(gabarit) + assert "Chantier 5 (fusion" not in rendu + assert "sans bump" not in rendu + # Aucune ligne de texte libre entre le commentaire d'en-tete et : + # le rendu doit commencer (apres commentaires) par ou
. + assert rendu.lstrip().startswith("")[0] + assert nav.index('data-app="kanbante"') < nav.index('data-app="agent"') + assert "Console Spark" in nav + assert 'data-app="agent"' in nav + assert 'class="draco-brand"' in rendu + # L'entree « Console Spark » du menu de la marque est construite par + # draco-barre.js depuis les onglets : l'onglet agent suffit a l'alimenter. + js_barre = (ROOT / "static/js/vendor/draco-barre.js").read_text() + assert "Console Spark" in js_barre -- 2.54.0