from ..connection import connect from .ensure_global_vars_schema import ensure_global_vars_schema def create_global_variable(slug, name, var_type="texte", default_value=""): """Crée une variable globale si son nom n'existe pas déjà (les noms sont uniques — voir ensure_global_vars_schema.py) ; si elle existe déjà, ne touche à rien et renvoie simplement son id existant, pour que "créer" depuis le sélecteur de condition de visibilité (voir screen_edit.html) reste sans risque même en cas de double clic/soumission.""" name = (name or "").strip() if not name: return None ensure_global_vars_schema(slug) conn = connect(slug) existing = conn.execute("SELECT id FROM _global_variables WHERE name = ?", (name,)).fetchone() if existing: conn.close() return existing["id"] conn.execute( "INSERT INTO _global_variables (name, type, value) VALUES (?, ?, ?)", (name, var_type, default_value), ) new_id = conn.execute("SELECT last_insert_rowid() AS id").fetchone()["id"] conn.commit() conn.close() return new_id