From e9d7f560e3364f803fb5bf54351d126aa2b7a1df Mon Sep 17 00:00:00 2001 From: william Date: Sat, 26 Sep 2026 15:13:53 +0200 Subject: [PATCH] =?UTF-8?q?Inclut=20document=5Ftheme=5Fapply.py=20oubli?= =?UTF-8?q?=C3=A9=20du=20commit=20pr=C3=A9c=C3=A9dent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit La route de retrait de thème (theme_id vide) fait partie intégrante de la fonctionnalité "Aucun modèle" du commit précédent — fichier omis par erreur du git add initial. Co-Authored-By: Claude Sonnet 5 --- routes/document/document_theme_apply.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/routes/document/document_theme_apply.py b/routes/document/document_theme_apply.py index c4b4b78c..db65d394 100644 --- a/routes/document/document_theme_apply.py +++ b/routes/document/document_theme_apply.py @@ -8,8 +8,8 @@ from core.flask_app import app @app.route("/document//theme/apply", methods=["POST"]) def document_theme_apply(slug: str) -> Response | tuple[Response, int]: - """Applique un thème visuel au support — voir document_engine/themes/. - `mode` décide du sort du contenu ACTUEL : + """Applique un thème visuel au support, ou le RETIRE — voir + document_engine/themes/. `mode` décide du sort du contenu ACTUEL : - "keep_content" (défaut) : seul le thème change, le contenu du support reste tel quel. - "template_content" : le contenu du support est intégralement @@ -17,9 +17,19 @@ def document_theme_apply(slug: str) -> Response | tuple[Response, int]: document_engine.replace_document_content) — action destructive, dont la confirmation est à la charge du client (voir static/document/js/document-editor.js, aucune confirmation ici - côté serveur : ce n'est pas son rôle).""" + côté serveur : ce n'est pas son rôle). + + `theme_id` vide (retour utilisateur du 26/09/2026 : la modale + propose une carte "Aucun modèle" pour "revenir à un document de + base") retire le thème (`db.remove_document_theme`) et s'arrête là + — jamais de contenu de démonstration à appliquer pour "aucun + modèle", `mode` n'a alors aucun sens et est ignoré.""" payload = request.get_json(force=True) or {} theme_id = str(payload.get("theme_id", "")) + if not theme_id: + db.remove_document_theme(slug) + return jsonify({"ok": True, "theme_id": ""}) + theme = document_engine.get_document_theme_entry(theme_id) if theme is None: return jsonify({"error": "thème introuvable"}), 404