diff options
| author | Russell Keith-Magee <russell@keith-magee.com> | 2011-02-19 12:55:09 +0000 |
|---|---|---|
| committer | Russell Keith-Magee <russell@keith-magee.com> | 2011-02-19 12:55:09 +0000 |
| commit | fe3c9ad55103f8fe473bdcf77d06cb958cbaf217 (patch) | |
| tree | 927eb8becf4f5dea9b6dcb4aea30b0942e8a0bf3 | |
| parent | 791ecb4be4d64618a40e1a80fad26a5e3b4d4b90 (diff) | |
Fixed #14355 -- Ensure that help_text is displayed for readonly fields in the admin. Thanks to jester for the report, and to alexbmeng, subsume, wamberg and Julien Phalip for ther work on the patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@15582 bcc190cf-cafb-0310-a4f2-bffc1f526a37
| -rw-r--r-- | django/contrib/admin/helpers.py | 3 | ||||
| -rw-r--r-- | django/contrib/admin/templates/admin/includes/fieldset.html | 4 | ||||
| -rw-r--r-- | django/contrib/admin/util.py | 7 | ||||
| -rw-r--r-- | tests/regressiontests/admin_views/models.py | 9 | ||||
| -rw-r--r-- | tests/regressiontests/admin_views/tests.py | 4 |
5 files changed, 21 insertions, 6 deletions
diff --git a/django/contrib/admin/helpers.py b/django/contrib/admin/helpers.py index b90f5ecd79..3c1bef3f9e 100644 --- a/django/contrib/admin/helpers.py +++ b/django/contrib/admin/helpers.py @@ -1,7 +1,7 @@ from django import forms from django.conf import settings from django.contrib.admin.util import flatten_fieldsets, lookup_field -from django.contrib.admin.util import display_for_field, label_for_field +from django.contrib.admin.util import display_for_field, label_for_field, help_text_for_field from django.contrib.contenttypes.models import ContentType from django.core.exceptions import ObjectDoesNotExist from django.db.models.fields.related import ManyToManyRel @@ -144,6 +144,7 @@ class AdminReadonlyField(object): 'name': class_name, 'label': label, 'field': field, + 'help_text': help_text_for_field(class_name, form._meta.model) } self.form = form self.model_admin = model_admin diff --git a/django/contrib/admin/templates/admin/includes/fieldset.html b/django/contrib/admin/templates/admin/includes/fieldset.html index addfd0854c..6363aeeee4 100644 --- a/django/contrib/admin/templates/admin/includes/fieldset.html +++ b/django/contrib/admin/templates/admin/includes/fieldset.html @@ -19,8 +19,8 @@ {{ field.field }} {% endif %} {% endif %} - {% if field.field.field.help_text %} - <p class="help">{{ field.field.field.help_text|safe }}</p> + {% if field.field.help_text %} + <p class="help">{{ field.field.help_text|safe }}</p> {% endif %} </div> {% endfor %} diff --git a/django/contrib/admin/util.py b/django/contrib/admin/util.py index 1c39614200..d3f17d67d4 100644 --- a/django/contrib/admin/util.py +++ b/django/contrib/admin/util.py @@ -266,6 +266,13 @@ def label_for_field(name, model, model_admin=None, return_attr=False): else: return label +def help_text_for_field(name, model): + try: + help_text = model._meta.get_field_by_name(name)[0].help_text + except models.FieldDoesNotExist: + help_text = "" + return smart_unicode(help_text) + def display_for_field(value, field): from django.contrib.admin.templatetags.admin_list import _boolean_icon diff --git a/tests/regressiontests/admin_views/models.py b/tests/regressiontests/admin_views/models.py index b601267e57..58a545a64a 100644 --- a/tests/regressiontests/admin_views/models.py +++ b/tests/regressiontests/admin_views/models.py @@ -523,9 +523,12 @@ class LinkInline(admin.TabularInline): class Post(models.Model): - title = models.CharField(max_length=100) - content = models.TextField() - posted = models.DateField(default=datetime.date.today) + title = models.CharField(max_length=100, help_text="Some help text for the title (with unicode ŠĐĆŽćžšđ)") + content = models.TextField(help_text="Some help text for the content (with unicode ŠĐĆŽćžšđ)") + posted = models.DateField( + default=datetime.date.today, + help_text="Some help text for the date (with unicode ŠĐĆŽćžšđ)" + ) public = models.NullBooleanField() def awesomeness_level(self): diff --git a/tests/regressiontests/admin_views/tests.py b/tests/regressiontests/admin_views/tests.py index 2685a05caa..f77c64bd21 100644 --- a/tests/regressiontests/admin_views/tests.py +++ b/tests/regressiontests/admin_views/tests.py @@ -2453,6 +2453,10 @@ class ReadonlyTest(TestCase): self.assertContains(response, '<div class="form-row posted">') self.assertContains(response, '<div class="form-row value">') self.assertContains(response, '<div class="form-row ">') + self.assertContains(response, '<p class="help">', 3) + self.assertContains(response, '<p class="help">Some help text for the title (with unicode ŠĐĆŽćžšđ)</p>') + self.assertContains(response, '<p class="help">Some help text for the content (with unicode ŠĐĆŽćžšđ)</p>') + self.assertContains(response, '<p class="help">Some help text for the date (with unicode ŠĐĆŽćžšđ)</p>') p = Post.objects.create(title="I worked on readonly_fields", content="Its good stuff") response = self.client.get('/test_admin/admin/admin_views/post/%d/' % p.pk) |
