Fixed #17050 -- Added some CSS class names to the admin index pages to facilitate per-app or per-model style customizations. Thanks to scytale for the report and to H0ff1 and thiderman for their work on the patch.
This commit is contained in:
parent
90d3af380e
commit
2e2c4968f6
|
@ -354,6 +354,7 @@ class AdminSite(object):
|
|||
info = (app_label, model._meta.module_name)
|
||||
model_dict = {
|
||||
'name': capfirst(model._meta.verbose_name_plural),
|
||||
'object_name': model._meta.object_name,
|
||||
'perms': perms,
|
||||
}
|
||||
if perms.get('change', False):
|
||||
|
@ -371,6 +372,7 @@ class AdminSite(object):
|
|||
else:
|
||||
app_dict[app_label] = {
|
||||
'name': app_label.title(),
|
||||
'app_label': app_label,
|
||||
'app_url': reverse('admin:app_list', kwargs={'app_label': app_label}, current_app=self.name),
|
||||
'has_module_perms': has_module_perms,
|
||||
'models': [model_dict],
|
||||
|
@ -408,6 +410,7 @@ class AdminSite(object):
|
|||
info = (app_label, model._meta.module_name)
|
||||
model_dict = {
|
||||
'name': capfirst(model._meta.verbose_name_plural),
|
||||
'object_name': model._meta.object_name,
|
||||
'perms': perms,
|
||||
}
|
||||
if perms.get('change', False):
|
||||
|
@ -428,6 +431,7 @@ class AdminSite(object):
|
|||
# information.
|
||||
app_dict = {
|
||||
'name': app_label.title(),
|
||||
'app_label': app_label,
|
||||
'app_url': '',
|
||||
'has_module_perms': has_module_perms,
|
||||
'models': [model_dict],
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
{% if app_list %}
|
||||
{% for app in app_list %}
|
||||
<div class="module">
|
||||
<div class="app-{{ app.app_label }} module">
|
||||
<table>
|
||||
<caption>
|
||||
<a href="{{ app.app_url }}" class="section" title="{% blocktrans with name=app.name %}Models in the {{ name }} application{% endblocktrans %}">
|
||||
|
@ -22,7 +22,7 @@
|
|||
</a>
|
||||
</caption>
|
||||
{% for model in app.models %}
|
||||
<tr>
|
||||
<tr class="model-{{ model.object_name|lower }}">
|
||||
{% if model.admin_url %}
|
||||
<th scope="row"><a href="{{ model.admin_url }}">{{ model.name }}</a></th>
|
||||
{% else %}
|
||||
|
|
|
@ -3391,7 +3391,11 @@ class CSSTest(TestCase):
|
|||
def tearDown(self):
|
||||
self.client.logout()
|
||||
|
||||
def test_css_classes(self):
|
||||
def test_field_prefix_css_classes(self):
|
||||
"""
|
||||
Ensure that fields have a CSS class name with a 'field-' prefix.
|
||||
Refs #16371.
|
||||
"""
|
||||
response = self.client.get('/test_admin/admin/admin_views/post/add/')
|
||||
|
||||
# The main form
|
||||
|
@ -3407,6 +3411,23 @@ class CSSTest(TestCase):
|
|||
self.assertContains(response, '<td class="field-url">')
|
||||
self.assertContains(response, '<td class="field-posted">')
|
||||
|
||||
def test_index_css_classes(self):
|
||||
"""
|
||||
Ensure that CSS class names are used for each app and model on the
|
||||
admin index pages.
|
||||
Refs #17050.
|
||||
"""
|
||||
# General index page
|
||||
response = self.client.get("/test_admin/admin/")
|
||||
self.assertContains(response, '<div class="app-admin_views module">')
|
||||
self.assertContains(response, '<tr class="model-actor">')
|
||||
self.assertContains(response, '<tr class="model-album">')
|
||||
|
||||
# App index page
|
||||
response = self.client.get("/test_admin/admin/admin_views/")
|
||||
self.assertContains(response, '<div class="app-admin_views module">')
|
||||
self.assertContains(response, '<tr class="model-actor">')
|
||||
self.assertContains(response, '<tr class="model-album">')
|
||||
|
||||
try:
|
||||
import docutils
|
||||
|
|
Loading…
Reference in New Issue