feat: page publique /a-propos/roadmap (lecture seule) #94

This commit is contained in:
Colin Maudry
2026-06-30 14:25:59 +02:00
parent 8161a8b8b4
commit 9bed4e3fb9
3 changed files with 41 additions and 0 deletions
+5
View File
@@ -23,6 +23,11 @@ SECTIONS = [
"label": "Abonnement", "label": "Abonnement",
"href": "/a-propos/abonnement", "href": "/a-propos/abonnement",
}, },
{
"key": "roadmap",
"label": "Roadmap",
"href": "/a-propos/roadmap",
},
] ]
+17
View File
@@ -0,0 +1,17 @@
from dash import register_page
from src.pages._apropos_shell import apropos_shell
from src.roadmap import ui as roadmap_ui
from src.utils.seo import META_CONTENT
register_page(
__name__,
path="/a-propos/roadmap",
title="Roadmap | À propos | decp.info",
description="Les prochaines fonctionnalités de decp.info, soumises au vote des abonnés.",
image_url=META_CONTENT["image_url"],
)
def layout(**_):
return apropos_shell("roadmap", roadmap_ui.roadmap_content(editable=False))
+19
View File
@@ -0,0 +1,19 @@
def test_public_layout_renders_read_only(monkeypatch):
from src.roadmap import ui as roadmap_ui
monkeypatch.setattr(
roadmap_ui.github,
"fetch_roadmap_issues",
lambda: {
"en_cours": [],
"au_vote": [{"number": 1, "title": "Feature publique", "html_url": "u1"}],
},
)
monkeypatch.setattr(roadmap_ui.roadmap_db, "vote_counts", lambda: {1: 4})
from src.pages.a_propos import roadmap
layout = roadmap.layout()
s = str(layout)
assert "Feature publique" in s
assert "Voter" not in s # lecture seule : aucun bouton