from flask import request, redirect, url_for import screens from core.flask_app import app @app.route("/game//screens//elements/add", methods=["POST"]) def element_add(slug, screen_id): widget = request.form.get("widget", "conteneur") from_catalogue = widget == "__catalogue__" element_type_id = request.form.get("element_type_id") or None if from_catalogue else None if from_catalogue and not element_type_id: return redirect(url_for("screen_edit", slug=slug, screen_id=screen_id)) if from_catalogue: types = {t["id"]: t for t in screens.list_element_types(slug)} et = types.get(int(element_type_id)) widget = et["default_widget"] if et else "conteneur" new_id = screens.add_element(slug, screen_id, widget, element_type_id) icon_class = request.form.get("icon_class") if widget == "icone" and icon_class: # Posé depuis la galerie d'icônes (voir le panneau de propriétés, # section "Icônes") : la classe Font Awesome choisie remplace celle # posée par défaut à la création plutôt que de repartir d'une icône # neutre que l'utilisateur devrait ensuite retaper à la main. screens.save_element_controls(slug, new_id, {"ctrl_icon_class": icon_class}) return redirect(url_for("screen_edit", slug=slug, screen_id=screen_id, selected=new_id))