Fixed #12952 -- Adjusted admin log change messages to use form labels instead of field names.

This commit is contained in:
Sanyam Khurana 2019-06-14 21:50:29 +05:30 committed by Carlton Gibson
parent 1564e42ad3
commit 87f5d07eed
10 changed files with 128 additions and 17 deletions

View file

@ -1,11 +1,30 @@
from django import forms
from django.contrib import admin
from .models import Article, ArticleProxy, Site
class ArticleAdminForm(forms.ModelForm):
nolabel_form_field = forms.BooleanField(required=False)
class Meta:
model = Article
fields = ['title']
@property
def changed_data(self):
data = super().changed_data
if data:
# Add arbitrary name to changed_data to test
# change message construction.
return data + ['not_a_form_field']
return data
class ArticleInline(admin.TabularInline):
model = Article
fields = ['title']
form = ArticleAdminForm
class SiteAdmin(admin.ModelAdmin):

View file

@ -53,9 +53,9 @@ class LogEntryTests(TestCase):
response = self.client.post(change_url, post_data)
self.assertRedirects(response, reverse('admin:admin_utils_article_changelist'))
logentry = LogEntry.objects.filter(content_type__model__iexact='article').latest('id')
self.assertEqual(logentry.get_change_message(), 'Changed title and hist.')
self.assertEqual(logentry.get_change_message(), 'Changed Title and History.')
with translation.override('fr'):
self.assertEqual(logentry.get_change_message(), 'Modification de title et hist.')
self.assertEqual(logentry.get_change_message(), 'Modification de Title et Historique.')
add_url = reverse('admin:admin_utils_article_add')
post_data['title'] = 'New'
@ -85,7 +85,7 @@ class LogEntryTests(TestCase):
response = self.client.post(change_url, post_data)
self.assertRedirects(response, reverse('admin:admin_utils_article_changelist'))
logentry = LogEntry.objects.filter(content_type__model__iexact='article').latest('id')
self.assertEqual(logentry.get_change_message(), 'Changed title and hist.')
self.assertEqual(logentry.get_change_message(), 'Changed Title and History.')
def test_logentry_change_message_formsets(self):
"""
@ -123,23 +123,25 @@ class LogEntryTests(TestCase):
self.assertEqual(
json.loads(logentry.change_message),
[
{"changed": {"fields": ["domain"]}},
{"changed": {"fields": ["Domain"]}},
{"added": {"object": "Added article", "name": "article"}},
{"changed": {"fields": ["title"], "object": "Changed Title", "name": "article"}},
{"changed": {"fields": ["Title", "not_a_form_field"], "object": "Changed Title", "name": "article"}},
{"deleted": {"object": "Title second article", "name": "article"}},
]
)
self.assertEqual(
logentry.get_change_message(),
'Changed domain. Added article "Added article". '
'Changed title for article "Changed Title". Deleted article "Title second article".'
'Changed Domain. Added article "Added article". '
'Changed Title and not_a_form_field for article "Changed Title". '
'Deleted article "Title second article".'
)
with translation.override('fr'):
self.assertEqual(
logentry.get_change_message(),
"Modification de domain. Ajout de article « Added article ». "
"Modification de title pour l'objet article « Changed Title ». "
"Modification de Domain. Ajout de article « Added article ». "
"Modification de Title et not_a_form_field pour l'objet "
"article « Changed Title ». "
"Suppression de article « Title second article »."
)