[1.5.x] Fixed #19114 -- Fixed LogEntry unicode representation

Thanks niko at neagee.net for the report and Emil Stenstrom for
the patch.
Backport of e0363c688 from master.
This commit is contained in:
Claude Paroz 2012-11-17 19:16:30 +01:00
parent fc379b4865
commit 3d4f5f6086
2 changed files with 12 additions and 5 deletions

View File

@ -4,7 +4,7 @@ from django.db import models
from django.conf import settings from django.conf import settings
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from django.contrib.admin.util import quote from django.contrib.admin.util import quote
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext, ugettext_lazy as _
from django.utils.encoding import smart_text from django.utils.encoding import smart_text
from django.utils.encoding import python_2_unicode_compatible from django.utils.encoding import python_2_unicode_compatible
@ -42,13 +42,16 @@ class LogEntry(models.Model):
def __str__(self): def __str__(self):
if self.action_flag == ADDITION: if self.action_flag == ADDITION:
return _('Added "%(object)s".') % {'object': self.object_repr} return ugettext('Added "%(object)s".') % {'object': self.object_repr}
elif self.action_flag == CHANGE: elif self.action_flag == CHANGE:
return _('Changed "%(object)s" - %(changes)s') % {'object': self.object_repr, 'changes': self.change_message} return ugettext('Changed "%(object)s" - %(changes)s') % {
'object': self.object_repr,
'changes': self.change_message,
}
elif self.action_flag == DELETION: elif self.action_flag == DELETION:
return _('Deleted "%(object)s."') % {'object': self.object_repr} return ugettext('Deleted "%(object)s."') % {'object': self.object_repr}
return _('LogEntry Object') return ugettext('LogEntry Object')
def is_addition(self): def is_addition(self):
return self.action_flag == ADDITION return self.action_flag == ADDITION

View File

@ -274,6 +274,10 @@ class UtilTests(unittest.TestCase):
six.text_type(log_entry).startswith('Deleted ') six.text_type(log_entry).startswith('Deleted ')
) )
# Make sure custom action_flags works
log_entry.action_flag = 4
self.assertEqual(six.text_type(log_entry), 'LogEntry Object')
def test_safestring_in_field_label(self): def test_safestring_in_field_label(self):
# safestring should not be escaped # safestring should not be escaped
class MyForm(forms.Form): class MyForm(forms.Form):