feat: page publique /a-propos/roadmap (lecture seule) #94
This commit is contained in:
@@ -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",
|
||||||
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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))
|
||||||
@@ -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
|
||||||
Reference in New Issue
Block a user