diff --git a/django_journal/admin.py b/django_journal/admin.py index 2eb11fc..638faec 100644 --- a/django_journal/admin.py +++ b/django_journal/admin.py @@ -2,7 +2,7 @@ from string import Formatter import django.contrib.admin as admin from django.contrib.contenttypes.models import ContentType -from django.utils.html import escape +from django.utils.html import format_html, escape, mark_safe from django.db import models from django.utils.encoding import force_text from django.utils.translation import ugettext_lazy as _ @@ -91,31 +91,28 @@ class JournalAdmin(admin.ModelAdmin): def _tag(self, entry): name = entry.tag.name.replace(u'-', u'\u2011') - res = u'{1}'.format( + res = format_html('{1}', escape(entry.tag.id), escape(name)) return res - _tag.allow_tags = True _tag.short_description = _('tag') def ip(self, entry): '''Search and return any associated stringdata whose tag is "ip"''' for stringdata in entry.stringdata_set.all(): if stringdata.tag.name == 'ip': - return u'{ip}'.format( + return format_html('{ip}', tag_id=stringdata.tag.id, ip=stringdata.content) return _('None') ip.short_description = _('IP') - ip.allow_tags = True def user(self, entry): '''Search and return any associated objectdata whose tag is "user"''' for objectdata in entry.objectdata_set.all(): if objectdata.tag.name == 'user': - return self.object_filter_link(objectdata) + \ - self.object_link(objectdata) + return format_html(self.object_filter_link(objectdata) + \ + self.object_link(objectdata)) return _('None') - user.allow_tags = True user.short_description = _('User') def object_filter_link(self, objectdata): @@ -146,16 +143,14 @@ class JournalAdmin(admin.ModelAdmin): ctx = entry.message_context() formatter = ModelAdminFormatter(model_admin=self, filter_link=False) message = formatter.format(escape(entry.template.content), **ctx) - return u'%s' % message - message_for_change.allow_tags = True + return format_html('{}', mark_safe(message)) message_for_change.short_description = _('Message') def message_for_list(self, entry): ctx = entry.message_context() formatter = ModelAdminFormatter(model_admin=self) message = formatter.format(entry.template.content, **ctx) - return u'{0}'.format(message) - message_for_list.allow_tags = True + return format_html('{}', mark_safe(message)) message_for_list.short_description = _('Message') message_for_list.admin_order_field = 'message'