from flask import request, redirect, url_for import screens from core.flask_app import app from core.sprite_gate import forbid_admin_only_character, forbid_admin_only_background @app.route("/game//screens//scene-objects/add", methods=["POST"]) def scene_object_add(slug, screen_id): """Pose un nouvel objet sur la scène — mirror de routes/elements/ element_add.py, mais pour _scene_objects (voir screens/scenes/ add_scene_object.py).""" kind = request.form.get("kind", "personnage") forge_character = request.form.get("forge_character") background_slug = request.form.get("background_slug") if forge_character: forbid_admin_only_character(forge_character) if background_slug: forbid_admin_only_background(background_slug) new_id = screens.add_scene_object( slug, screen_id, kind=kind, forge_character=forge_character, background_slug=background_slug, ) # Même route que l'éditeur document (/game//screens//edit, # endpoint "screen_edit") — c'est CE dispatcher qui bascule vers la # vue de scène selon game_type, voir routes/screens/screen_edit.py. return redirect(url_for("screen_edit", slug=slug, screen_id=screen_id, selected=new_id))