fix(equipment): register description line break filter
This commit is contained in:
parent
d4d80a35be
commit
be8a72e8f1
2 changed files with 15 additions and 1 deletions
|
|
@ -12,6 +12,7 @@ import os
|
||||||
import json
|
import json
|
||||||
import re
|
import re
|
||||||
from jinja2 import ChoiceLoader, FileSystemLoader, PrefixLoader
|
from jinja2 import ChoiceLoader, FileSystemLoader, PrefixLoader
|
||||||
|
from markupsafe import Markup, escape
|
||||||
|
|
||||||
# Extensions (définies dans extensions.py)
|
# Extensions (définies dans extensions.py)
|
||||||
from .extensions import db, login_manager, migrate, csrf
|
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["from_json"] = lambda value: json.loads(value) if value else []
|
||||||
app.jinja_env.filters["hex_color"] = bootstrap_color_to_hex
|
app.jinja_env.filters["hex_color"] = bootstrap_color_to_hex
|
||||||
app.jinja_env.filters["text_color"] = bootstrap_text_color
|
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.filters["slugify"] = lambda value: re.sub(r'[^a-z0-9]+', '-', str(value or '').lower()).strip('-')
|
||||||
app.jinja_env.globals["timedelta"] = timedelta
|
app.jinja_env.globals["timedelta"] = timedelta
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -125,7 +125,12 @@ def test_grouped_equipment_detail_and_hierarchy(authenticated_client, app):
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
equipment_id = equipment.id
|
equipment_id = equipment.id
|
||||||
assert db.session.get(Equipment, equipment_id) is not None
|
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
|
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}"):
|
with app.app_context(), app.test_request_context(f"/equipments/{equipment_id}"):
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue