from flask import request, redirect, url_for import db from core.flask_app import app from .parse_field_rows import _parse_field_rows @app.route("/game//objects/new", methods=["GET", "POST"]) def object_new(slug): """La création d'un objet se fait désormais depuis un panneau déplaçable sur le tableau de bord du jeu (voir game_dashboard.html, formulaire #objectForm) plutôt qu'une page dédiée — cette route ne fait donc plus que traiter la soumission de CE formulaire. Un GET direct (ex. lien externe obsolète) redirige simplement vers le tableau de bord.""" if request.method == "POST": name = request.form.get("object_name", "").strip() # Aucun champ requis à la création : create_definition(fields=[]) # crée simplement une table sans colonne "métier" (juste id/ # created_at), et le panneau "Modifier un objet" (onglet Champs, # bouton "+ Ajouter") permet d'en poser ensuite — exiger au moins # un champ ici faisait échouer silencieusement la création (aucun # 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) if name: definition_id = db.create_definition(slug, name, fields) return redirect(url_for("object_view", slug=slug, definition_id=definition_id)) return redirect(url_for("game_dashboard", slug=slug))