Fusionne les 4 pages de création dans le dashboard, retire le titre/BDD
Suite de la demande précédente : les 4 pages autrefois listées dans la barre de navigation n'existent plus en tant que pages séparées — tout vit désormais dans les onglets du tableau de bord (commit précédent) ou, pour la création d'un objet, dans un panneau déplaçable. - screens_list.html + sa route (screens_list) : supprimés (l'onglet "Écrans du jeu" du dashboard couvre déjà tout : créer, réordonner, éditer, supprimer). screen_new/screen_move/screen_delete redirigent maintenant vers le dashboard (tab=screens) au lieu de cette page. - element_types.html : supprimé, mais la route element_types est conservée (GET redirige vers le dashboard, POST — utilisé par la barre de création repliable de l'onglet "Éléments de jeu" — continue de fonctionner). element_type_edit/element_type_delete redirigent aussi vers le dashboard. - game_variables.html + sa route (game_variables) : supprimés (l'onglet "Variables" du dashboard couvre déjà tout). create_global_var/ global_var_edit/global_var_delete redirigent vers le dashboard (tab=variables) au lieu de cette page. - object_form.html : supprimé. La route object_new (POST) est conservée pour traiter la soumission du panneau — voir plus bas — mais ne rend plus de page pour un GET (redirige vers le dashboard). Nouveau panneau déplaçable "Nouvel objet" sur le dashboard (bouton "+ Nouvel objet" de l'onglet Objets) : réutilise .floatPanel/ .floatPanelHeader/.floatPanelBody (déjà utilisées dans l'éditeur d'écran) avec une nouvelle variante centrée (.floatPanel--center) et son propre glisser-déposer minimal (pas de position persistée, contrairement aux panneaux de l'éditeur d'écran — inutile pour un panneau ouvert ponctuellement). Contenu et script (object_form.js) repris tels quels de l'ancienne page. base.html : la barre de navigation du jeu n'a donc plus que 2 liens — "📊 Tableau de bord" (nouveau) et "▶️ Jouer" (toujours en dernier). game_dashboard.html : titre du jeu et chemin de la base de données retirés (redondants avec le nom déjà visible dans l'onglet du navigateur/la barre de nav). Les liens "crée-en un"/"gérer les variables" dans l'éditeur d'écran (screen_edit.html) pointent maintenant vers le dashboard avec le bon onglet (?tab=...), lu et appliqué au chargement de la page (switchDashTab() côté JS). 2 tests (test_screens_and_elements.py) mis à jour : ils vérifiaient le contenu des pages supprimées (element-types, screens) — adaptés pour vérifier la même chose sur le dashboard, qui porte maintenant cette information. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
65450a5719
commit
d875557254
@@ -100,15 +100,17 @@ def test_element_type_template_case_a_and_case_b(client, game, mail_object):
|
||||
follow_redirects=False,
|
||||
)
|
||||
assert resp.status_code == 302
|
||||
html = client.get(f"/game/{slug}/element-types").data.decode()
|
||||
html = client.get(f"/game/{slug}").data.decode()
|
||||
m = re.search(r"/screens/(\d+)/edit", html)
|
||||
assert m, "le lien vers l'écran-modèle doit apparaître dans le catalogue"
|
||||
template_screen_id = int(m.group(1))
|
||||
|
||||
# L'écran-modèle est un écran caché (is_template) : absent de la liste
|
||||
# normale des écrans jouables.
|
||||
screens_html = client.get(f"/game/{slug}/screens").data.decode()
|
||||
assert "CarteMail" not in screens_html or "Modèle" not in screens_html
|
||||
# normale des écrans jouables (onglet "Écrans du jeu" du tableau de
|
||||
# bord) — son nom complet ("Modèle : CarteMail") ne doit donc apparaître
|
||||
# nulle part sur cette page, contrairement à "CarteMail" seul (le nom de
|
||||
# l'élément de jeu lui-même, affiché dans l'onglet "Éléments de jeu").
|
||||
assert "Modèle : CarteMail" not in html
|
||||
|
||||
# Construit le contenu du modèle : un titre lié au champ "sujet".
|
||||
resp = client.post(
|
||||
@@ -266,7 +268,7 @@ def test_screen_editor_property_panels_closed_by_default(client, game):
|
||||
|
||||
def test_delete_element_type_removes_hidden_template_screen(client, game):
|
||||
resp = client.post(f"/game/{game}/element-types", data={"name": "ToDelete", "icon": "🧩"}, follow_redirects=False)
|
||||
html = client.get(f"/game/{game}/element-types").data.decode()
|
||||
html = client.get(f"/game/{game}").data.decode()
|
||||
m = re.search(r"/screens/(\d+)/edit", html)
|
||||
template_screen_id = int(m.group(1))
|
||||
element_type_id = int(re.search(r"element-types/(\d+)/delete", html).group(1))
|
||||
|
||||
Reference in New Issue
Block a user