diff --git a/db/definitions/list_definitions.py b/db/definitions/list_definitions.py
index ed28d9fd..526d501e 100644
--- a/db/definitions/list_definitions.py
+++ b/db/definitions/list_definitions.py
@@ -1,7 +1,9 @@
from ..connection import connect
+from .ensure_field_bounds_schema import ensure_field_bounds_schema
def list_definitions(slug):
+ ensure_field_bounds_schema(slug)
conn = connect(slug)
rows = conn.execute("SELECT * FROM _definitions ORDER BY id").fetchall()
conn.close()
diff --git a/routes/global_vars/create_global_var.py b/routes/global_vars/create_global_var.py
index 4f50a41f..37158678 100644
--- a/routes/global_vars/create_global_var.py
+++ b/routes/global_vars/create_global_var.py
@@ -13,6 +13,11 @@ def create_global_var(slug):
name = (request.form.get("name") or "").strip()
var_type = request.form.get("type") or "texte"
default_value = request.form.get("default_value") or ""
+ # État par joueur (Phase 1) : coché par défaut (une case DÉCOCHÉE
+ # explicitement rend la variable partagée par tous les joueurs, voir
+ # db/global_vars/create_global_variable.py) — absent du formulaire
+ # (jeux/pages qui n'ont pas encore ce champ) => reste per_player.
+ per_player = request.form.get("per_player", "1") == "1"
if name:
- db.create_global_variable(slug, name, var_type, default_value)
+ db.create_global_variable(slug, name, var_type, default_value, per_player=per_player)
return redirect(url_for("game_dashboard", slug=slug, tab="variables"))
diff --git a/routes/objects/object_new.py b/routes/objects/object_new.py
index 98c0bbc0..2a76a90c 100644
--- a/routes/objects/object_new.py
+++ b/routes/objects/object_new.py
@@ -23,8 +23,13 @@ def object_new(slug):
# message d'erreur, juste un retour au tableau de bord) dès qu'on
# tapait le nom sans avoir encore cliqué "+ Ajouter un champ".
fields = _parse_field_rows(request.form)
+ # État par joueur (Phase 1) : coché par défaut (une case DÉCOCHÉE
+ # explicitement rend l'objet partagé par tous les joueurs — ex. un
+ # catalogue/une liste de questions — voir db/definitions/
+ # create_definition.py).
+ per_player = request.form.get("per_player", "1") == "1"
if name:
- definition_id = db.create_definition(slug, name, fields)
+ definition_id = db.create_definition(slug, name, fields, per_player=per_player)
return redirect(url_for("object_view", slug=slug, definition_id=definition_id))
return redirect(url_for("game_dashboard", slug=slug))
diff --git a/templates/game_dashboard.html b/templates/game_dashboard.html
index 545abb84..b1f0ed36 100644
--- a/templates/game_dashboard.html
+++ b/templates/game_dashboard.html
@@ -76,12 +76,13 @@
{% if definitions %}