Retire l'export exécutable (.exe) et la partie publique en ligne (/jouer)
Décision produit : seul l'export Web/SCORM (LMS) est pertinent — l'export exécutable Windows autonome (publish/build_package.py, bouton "Publier") et la partie publique par joueur (/jouer/<slug>, routes/public_play/, "Publier en ligne") sont jugés redondants et retirés. Conserve le mécanisme d'état "par joueur" (db/global_vars, db/rows, per_player) : infrastructure générique déjà utilisée par Score/Progression et testée indépendamment de toute route publique (voir tests/test_player_state.py), aucune raison de la retirer. _STATIC_ITEMS/_copy_characters (copie sélective des sprites CraftPix réellement utilisés) migrent de build_package.py vers build_scorm_package.py, seul appelant restant. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
82d00b3800
commit
e82eb7ce88
@@ -1,5 +1,4 @@
|
||||
from ..connection import connect
|
||||
from .is_public_played import is_public_played
|
||||
from .game_type_catalog import get_onboarding_type
|
||||
|
||||
|
||||
@@ -9,11 +8,6 @@ def game_meta(slug):
|
||||
conn.close()
|
||||
return {
|
||||
"slug": slug, "name": row["value"] if row else slug,
|
||||
# État par joueur (Phase 1) : disponible partout où `game` est
|
||||
# dans le contexte du template (base.html, la bascule "Publier en
|
||||
# ligne" en a besoin pour afficher son état actuel), sans avoir à
|
||||
# appeler is_public_played(slug) séparément dans chaque route.
|
||||
"is_public_played": is_public_played(slug),
|
||||
# Onboarding guidé (voir game_type_catalog.py) : utilisé par
|
||||
# templates/base.html pour cacher le lien "Tableau de bord" à un
|
||||
# compte "restreint" (quiz/embranchement/rpg).
|
||||
|
||||
@@ -10,7 +10,7 @@ accessible ensuite, ou seulement sa version simplifiée (juste les écrans
|
||||
en cartes — voir routes/games/game_dashboard.py, restricted).
|
||||
|
||||
_meta['onboarding_type'] (une ligne _meta par projet, même convention que
|
||||
is_public_played/l'ancien game_type) retient CE choix — jamais lu par le
|
||||
game_type) retient CE choix — jamais lu par le
|
||||
rendu jouable, seulement par le routage (routes/games/game_dashboard.py,
|
||||
routes/screens/screens_new.py)."""
|
||||
import db
|
||||
|
||||
@@ -8,9 +8,10 @@ def get_game_type(slug):
|
||||
(éditeur générique actuel — quiz/formulaires/contenus, écrans =
|
||||
éléments HTML positionnés en %) ou "jeu_2d" (éditeur de scène dédié —
|
||||
voir screens/scenes/, écrans = objets pixel-positionnés en couches).
|
||||
Réutilise _meta comme is_public_played — aucune nouvelle table. Un jeu
|
||||
créé avant l'existence de cette clé (absente de _meta) retombe sur
|
||||
"document", son comportement d'avant, inchangé."""
|
||||
Stocké dans _meta (une table générique clé/valeur, déjà utilisée pour
|
||||
d'autres réglages de projet) — aucune nouvelle table. Un jeu créé avant
|
||||
l'existence de cette clé (absente de _meta) retombe sur "document",
|
||||
son comportement d'avant, inchangé."""
|
||||
conn = connect(slug)
|
||||
row = conn.execute("SELECT value FROM _meta WHERE key = 'game_type'").fetchone()
|
||||
conn.close()
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
from ..connection import connect
|
||||
|
||||
|
||||
def is_public_played(slug):
|
||||
"""Un jeu n'est jouable sur la route publique /jouer/<slug> (voir
|
||||
routes/public_play/) que si le créateur l'a explicitement basculé
|
||||
"Publier en ligne" dans son tableau de bord — jamais par défaut, pour
|
||||
ne pas exposer un jeu en cours de conception. Réutilise la table
|
||||
générique _meta (voir game_meta.py, déjà utilisée pour 'name'),
|
||||
aucune nouvelle colonne/table nécessaire."""
|
||||
conn = connect(slug)
|
||||
row = conn.execute("SELECT value FROM _meta WHERE key = 'is_public_played'").fetchone()
|
||||
conn.close()
|
||||
return bool(row and row["value"] == "1")
|
||||
@@ -1,14 +0,0 @@
|
||||
from ..connection import connect
|
||||
|
||||
|
||||
def set_public_played(slug, value):
|
||||
"""Bascule "Publier en ligne" (tableau de bord) — voir
|
||||
is_public_played.py. `value` : bool."""
|
||||
conn = connect(slug)
|
||||
conn.execute(
|
||||
"INSERT INTO _meta (key, value) VALUES ('is_public_played', ?) "
|
||||
"ON CONFLICT(key) DO UPDATE SET value = excluded.value",
|
||||
("1" if value else "0",),
|
||||
)
|
||||
conn.commit()
|
||||
conn.close()
|
||||
Reference in New Issue
Block a user