Projet

Général

Profil

0001-django-2.2-use-format_html-instead-of-allow_tags-542.patch

Emmanuel Cazenave, 25 mai 2021 12:25

Télécharger (3,42 ko)

Voir les différences:

Subject: [PATCH] django 2.2: use format_html instead of allow_tags (#54257)

 django_journal/admin.py | 21 ++++++++-------------
 1 file changed, 8 insertions(+), 13 deletions(-)
django_journal/admin.py
2 2

  
3 3
import django.contrib.admin as admin
4 4
from django.contrib.contenttypes.models import ContentType
5
from django.utils.html import escape
5
from django.utils.html import format_html, escape, mark_safe
6 6
from django.db import models
7 7
from django.utils.encoding import force_text
8 8
from django.utils.translation import ugettext_lazy as _
......
91 91

  
92 92
    def _tag(self, entry):
93 93
        name = entry.tag.name.replace(u'-', u'\u2011')
94
        res = u'<a href="?tag__id__exact={0}">{1}</a>'.format(
94
        res = format_html('<a href="?tag__id__exact={0}">{1}</a>',
95 95
                escape(entry.tag.id), escape(name))
96 96
        return res
97
    _tag.allow_tags = True
98 97
    _tag.short_description = _('tag')
99 98

  
100 99
    def ip(self, entry):
101 100
        '''Search and return any associated stringdata whose tag is "ip"'''
102 101
        for stringdata in entry.stringdata_set.all():
103 102
            if stringdata.tag.name == 'ip':
104
                return u'<a href="?stringdata__tag__id={tag_id}&' \
105
                       u'stringdata__content={ip}">{ip}</a>'.format(
103
                return format_html('<a href="?stringdata__tag__id={tag_id}&' \
104
                                   'stringdata__content={ip}">{ip}</a>',
106 105
                        tag_id=stringdata.tag.id, ip=stringdata.content)
107 106
        return _('None')
108 107
    ip.short_description = _('IP')
109
    ip.allow_tags = True
110 108

  
111 109
    def user(self, entry):
112 110
        '''Search and return any associated objectdata whose tag is "user"'''
113 111
        for objectdata in entry.objectdata_set.all():
114 112
            if objectdata.tag.name == 'user':
115
                return self.object_filter_link(objectdata) + \
116
                        self.object_link(objectdata)
113
                return format_html(self.object_filter_link(objectdata) + \
114
                        self.object_link(objectdata))
117 115
        return _('None')
118
    user.allow_tags = True
119 116
    user.short_description = _('User')
120 117

  
121 118
    def object_filter_link(self, objectdata):
......
146 143
        ctx = entry.message_context()
147 144
        formatter = ModelAdminFormatter(model_admin=self, filter_link=False)
148 145
        message = formatter.format(escape(entry.template.content), **ctx)
149
        return u'<span>%s</span>' % message
150
    message_for_change.allow_tags = True
146
        return format_html('<span>{}</span>', mark_safe(message))
151 147
    message_for_change.short_description = _('Message')
152 148

  
153 149
    def message_for_list(self, entry):
154 150
        ctx = entry.message_context()
155 151
        formatter = ModelAdminFormatter(model_admin=self)
156 152
        message = formatter.format(entry.template.content, **ctx)
157
        return u'<span>{0}</span>'.format(message)
158
    message_for_list.allow_tags = True
153
        return format_html('<span>{}</span>', mark_safe(message))
159 154
    message_for_list.short_description = _('Message')
160 155
    message_for_list.admin_order_field = 'message'
161 156

  
162
-