Inclut document_theme_apply.py oublié du commit précédent
Build and deploy / test-python (push) Successful in 11m34s
Build and deploy / test-js (push) Successful in 1m13s
Build and deploy / lint-python (push) Successful in 5m54s
Build and deploy / lint-js (push) Failing after 1m41s
Build and deploy / build-and-push (push) Skipped
Build and deploy / deploy (push) Skipped
Build and deploy / sonarqube (push) Failing after 4m49s

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 <noreply@anthropic.com>
This commit is contained in:
william
2026-09-26 15:13:53 +02:00
co-authored by Claude Sonnet 5
parent 4db1269348
commit e9d7f560e3
+13 -3
View File
@@ -8,8 +8,8 @@ from core.flask_app import app
@app.route("/document/<slug>/theme/apply", methods=["POST"]) @app.route("/document/<slug>/theme/apply", methods=["POST"])
def document_theme_apply(slug: str) -> Response | tuple[Response, int]: def document_theme_apply(slug: str) -> Response | tuple[Response, int]:
"""Applique un thème visuel au support — voir document_engine/themes/. """Applique un thème visuel au support, ou le RETIRE — voir
`mode` décide du sort du contenu ACTUEL : document_engine/themes/. `mode` décide du sort du contenu ACTUEL :
- "keep_content" (défaut) : seul le thème change, le contenu du - "keep_content" (défaut) : seul le thème change, le contenu du
support reste tel quel. support reste tel quel.
- "template_content" : le contenu du support est intégralement - "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, document_engine.replace_document_content) — action destructive,
dont la confirmation est à la charge du client (voir dont la confirmation est à la charge du client (voir
static/document/js/document-editor.js, aucune confirmation ici 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 {} payload = request.get_json(force=True) or {}
theme_id = str(payload.get("theme_id", "")) 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) theme = document_engine.get_document_theme_entry(theme_id)
if theme is None: if theme is None:
return jsonify({"error": "thème introuvable"}), 404 return jsonify({"error": "thème introuvable"}), 404