templatetags: remove json_script as it's available in django (#65801)
This commit is contained in:
parent
ebab8fdb4e
commit
2248f16cc9
|
@ -27,7 +27,6 @@ import django
|
||||||
from django import template
|
from django import template
|
||||||
from django.core import signing
|
from django.core import signing
|
||||||
from django.core.exceptions import PermissionDenied
|
from django.core.exceptions import PermissionDenied
|
||||||
from django.core.serializers.json import DjangoJSONEncoder
|
|
||||||
from django.template import VariableDoesNotExist
|
from django.template import VariableDoesNotExist
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -43,8 +42,6 @@ from django.template import Template, TemplateSyntaxError, defaultfilters
|
||||||
from django.template.defaultfilters import stringfilter
|
from django.template.defaultfilters import stringfilter
|
||||||
from django.utils import dateparse
|
from django.utils import dateparse
|
||||||
from django.utils.encoding import force_text
|
from django.utils.encoding import force_text
|
||||||
from django.utils.html import format_html
|
|
||||||
from django.utils.safestring import mark_safe
|
|
||||||
from django.utils.timezone import is_naive, make_aware
|
from django.utils.timezone import is_naive, make_aware
|
||||||
|
|
||||||
from combo.apps.dashboard.models import DashboardCell, Tile
|
from combo.apps.dashboard.models import DashboardCell, Tile
|
||||||
|
@ -652,27 +649,6 @@ def abs_(value):
|
||||||
return decimal(abs(parse_decimal(value)))
|
return decimal(abs(parse_decimal(value)))
|
||||||
|
|
||||||
|
|
||||||
_json_script_escapes = {
|
|
||||||
ord('>'): '\\u003E',
|
|
||||||
ord('<'): '\\u003C',
|
|
||||||
ord('&'): '\\u0026',
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@register.filter(is_safe=True)
|
|
||||||
def json_script(value, element_id):
|
|
||||||
"""
|
|
||||||
Escape all the HTML/XML special characters with their unicode escapes, so
|
|
||||||
value is safe to be output anywhere except for inside a tag attribute. Wrap
|
|
||||||
the escaped JSON in a script tag.
|
|
||||||
--
|
|
||||||
This is a backport from Django 2.1; it should be removed once Combo bumps
|
|
||||||
its minimal dependency to 2.1.
|
|
||||||
"""
|
|
||||||
json_str = json.dumps(value, cls=DjangoJSONEncoder).translate(_json_script_escapes)
|
|
||||||
return format_html('<script id="{}" type="application/json">{}</script>', element_id, mark_safe(json_str))
|
|
||||||
|
|
||||||
|
|
||||||
@register.filter(is_safe=False)
|
@register.filter(is_safe=False)
|
||||||
def phonenumber_fr(value, separator=' '):
|
def phonenumber_fr(value, separator=' '):
|
||||||
DROMS = ('262', '508', '590', '594', '596')
|
DROMS = ('262', '508', '590', '594', '596')
|
||||||
|
|
|
@ -854,14 +854,6 @@ def test_abs_templatetag():
|
||||||
assert tmpl.render(Context({'value': None})) == '0'
|
assert tmpl.render(Context({'value': None})) == '0'
|
||||||
|
|
||||||
|
|
||||||
def test_json_script():
|
|
||||||
tmpl = Template('{{ plop|json_script:"toto" }}')
|
|
||||||
assert (
|
|
||||||
tmpl.render(Context({'plop': {'a': 'b'}}))
|
|
||||||
== '<script id="toto" type="application/json">{"a": "b"}</script>'
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def test_phonenumber_fr():
|
def test_phonenumber_fr():
|
||||||
t = Template('{{ number|phonenumber_fr }}')
|
t = Template('{{ number|phonenumber_fr }}')
|
||||||
assert t.render(Context({'number': '01 23 45 67 89'})) == '01 23 45 67 89'
|
assert t.render(Context({'number': '01 23 45 67 89'})) == '01 23 45 67 89'
|
||||||
|
|
Loading…
Reference in New Issue