Code

Ticket #12952: admin_history.diff

File admin_history.diff, 4.0 KB (added by vasiliyeah, 3 years ago)
Line 
1Index: ../django/contrib/admin/options.py
2===================================================================
3--- ../django/contrib/admin/options.py  (revision 16357)
4+++ ../django/contrib/admin/options.py  (working copy)
5@@ -636,9 +636,21 @@
6         """
7         Construct a change message from a changed object.
8         """
9+
10+        def convert_changed_list(obj, changed_data):
11+            cls = type(obj)
12+            verbose_names = []
13+            for field in changed_data:
14+                try:
15+                    verbose_names.append(cls._meta.get_field_by_name(field)[0].verbose_name)
16+                except FieldDoesNotExist:
17+                    verbose_names.append(field)
18+            return verbose_names
19+       
20         change_message = []
21         if form.changed_data:
22-            change_message.append(_('Changed %s.') % get_text_list(form.changed_data, _('and')))
23+            change_message.append(_('Changed %s.') %
24+                get_text_list(convert_changed_list(form.instance, form.changed_data), _('and')))
25 
26         if formsets:
27             for formset in formsets:
28@@ -648,7 +660,8 @@
29                                              'object': force_unicode(added_object)})
30                 for changed_object, changed_fields in formset.changed_objects:
31                     change_message.append(_('Changed %(list)s for %(name)s "%(object)s".')
32-                                          % {'list': get_text_list(changed_fields, _('and')),
33+                                          % {'list': get_text_list(convert_changed_list(changed_object, changed_fields),
34+                                                _('and')),
35                                              'name': force_unicode(changed_object._meta.verbose_name),
36                                              'object': force_unicode(changed_object)})
37                 for deleted_object in formset.deleted_objects:
38Index: ../tests/regressiontests/admin_views/tests.py
39===================================================================
40--- ../tests/regressiontests/admin_views/tests.py       (revision 16357)
41+++ ../tests/regressiontests/admin_views/tests.py       (working copy)
42@@ -1047,6 +1047,25 @@
43 
44         response = self.client.get('/test_admin/admin/secure-view/')
45         self.assertContains(response, 'id="login-form"')
46+       
47+    def testHistoryView(self):
48+        change_dict = {'title' : 'Ikke fordømt',
49+                       'content': '<p>edited article</p>',
50+                       'date_0': '2008-03-18', 'date_1': '10:54:39',
51+                       'section': 1}
52+       
53+        self.client.get('/test_admin/admin/')
54+        self.client.post('/test_admin/admin/', self.changeuser_login)
55+        post = self.client.post('/test_admin/admin/admin_views/article/1/', change_dict)
56+        self.assertEqual(Article.objects.get(pk=1).content, '<p>edited article</p>')
57+        response = self.client.get('/test_admin/admin/admin_views/article/1/history/')
58+        self.assertEqual(response.status_code, 200)
59+        self.assertContains(response, u'<td>changeuser (Change User)</td>')
60+        self.assertContains(response, u'<td>Changed ¿Name?, content and ¿Date published?.</td>')
61+       
62+       
63+       
64+       
65 
66 
67 class AdminViewDeletedObjectsTest(TestCase):
68Index: ../tests/regressiontests/admin_views/models.py
69===================================================================
70--- ../tests/regressiontests/admin_views/models.py      (revision 16357)
71+++ ../tests/regressiontests/admin_views/models.py      (working copy)
72@@ -25,10 +25,10 @@
73     """
74     A simple article to test admin views. Test backwards compatibility.
75     """
76-    title = models.CharField(max_length=100)
77+    title = models.CharField(max_length=100, verbose_name=u'¿Name?')
78     content = models.TextField()
79-    date = models.DateTimeField()
80-    section = models.ForeignKey(Section, null=True, blank=True)
81+    date = models.DateTimeField(verbose_name=u'¿Date published?')
82+    section = models.ForeignKey(Section, null=True, blank=True, verbose_name=u'¿Section?')
83 
84     def __unicode__(self):
85         return self.title