fix(equipment): register description line break filter

This commit is contained in:
root 2026-08-22 15:13:53 +00:00
parent d4d80a35be
commit be8a72e8f1
2 changed files with 15 additions and 1 deletions

View file

@ -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("<br>\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

View file

@ -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}"):