from flask import request, redirect, url_for import db from core.flask_app import app @app.route("/game//objects//fields/add", methods=["POST"]) def object_field_add(slug, definition_id): name = request.form.get("field_name", "").strip() field_type = request.form.get("field_type", "texte") relation_definition_id = request.form.get("field_relation") # Voir parse_field_rows.py (même garde) : "Relation" choisi sans objet # cible valide ferait planter add_field_to_definition (int("") lève), # ce qui annulait l'ALTER TABLE avant son commit() -- le champ # n'était alors ajouté du tout, sans le moindre message d'erreur. if name and not (field_type == "relation" and not (relation_definition_id or "").strip().isdigit()): db.add_field_to_definition(slug, definition_id, { "name": name, "type": field_type, "relation_definition_id": relation_definition_id, "required": request.form.get("field_required") == "1", "min_value": request.form.get("field_min") or None, "max_value": request.form.get("field_max") or None, }) return redirect(url_for("game_dashboard", slug=slug, tab="objects", edit=definition_id))