From be8a72e8f1404c58386f1273014fafbf53978804 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 22 Aug 2026 15:13:53 +0000 Subject: [PATCH] fix(equipment): register description line break filter --- app_new/__init__.py | 9 +++++++++ tests/integration/test_ui_p1_regressions.py | 7 ++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/app_new/__init__.py b/app_new/__init__.py index f9044b6..fe53efe 100644 --- a/app_new/__init__.py +++ b/app_new/__init__.py @@ -12,6 +12,7 @@ import os import json import re from jinja2 import ChoiceLoader, FileSystemLoader, PrefixLoader +from markupsafe import Markup, escape # Extensions (définies dans extensions.py) from .extensions import db, login_manager, migrate, csrf @@ -247,6 +248,14 @@ def create_app(config_name='default'): app.jinja_env.filters["from_json"] = lambda value: json.loads(value) if value else [] app.jinja_env.filters["hex_color"] = bootstrap_color_to_hex app.jinja_env.filters["text_color"] = bootstrap_text_color + # Le détail des équipements conserve les retours à la ligne des + # descriptions via ce filtre partagé par les templates du projet. + def nl2br(value): + if value is None: + return "" + return Markup("
\n").join(escape(line) for line in str(value).splitlines()) + + app.jinja_env.filters["nl2br"] = nl2br app.jinja_env.filters["slugify"] = lambda value: re.sub(r'[^a-z0-9]+', '-', str(value or '').lower()).strip('-') app.jinja_env.globals["timedelta"] = timedelta diff --git a/tests/integration/test_ui_p1_regressions.py b/tests/integration/test_ui_p1_regressions.py index ed11f97..8cb087b 100644 --- a/tests/integration/test_ui_p1_regressions.py +++ b/tests/integration/test_ui_p1_regressions.py @@ -125,7 +125,12 @@ def test_grouped_equipment_detail_and_hierarchy(authenticated_client, app): db.session.commit() equipment_id = equipment.id assert db.session.get(Equipment, equipment_id) is not None - db.session.remove() + + # Requête HTTP avant de manipuler explicitement la session permet de + # couvrir le même chemin que le navigateur dans cette fixture. + response = authenticated_client.get(f"/equipments/{equipment_id}") + assert response.status_code == 200 + assert "UI grouped chairs" in response.get_data(as_text=True) from app_new.equipments.main import detail as equipment_detail, hierarchy as equipment_hierarchy with app.app_context(), app.test_request_context(f"/equipments/{equipment_id}"):