diff --git a/django/contrib/admin/static/admin/css/base.css b/django/contrib/admin/static/admin/css/base.css index ea7707eb89bc..dc6e24a476d9 100644 --- a/django/contrib/admin/static/admin/css/base.css +++ b/django/contrib/admin/static/admin/css/base.css @@ -808,18 +808,25 @@ a.deletelink:focus, a.deletelink:hover { text-decoration: none; } +/* TITLES */ + +.titles-and-tools { + display: flex; +} + +.titles { + flex-grow: 1; +} + /* OBJECT TOOLS */ .object-tools { padding: 0; - overflow: hidden; - text-align: right; - margin: 0 0 15px; + margin: 0; } .object-tools li { display: inline-block; - height: auto; } .object-tools li + li { diff --git a/django/contrib/admin/static/admin/css/responsive.css b/django/contrib/admin/static/admin/css/responsive.css index c8af03ba90e4..9524cc526342 100644 --- a/django/contrib/admin/static/admin/css/responsive.css +++ b/django/contrib/admin/static/admin/css/responsive.css @@ -439,11 +439,15 @@ input[type="submit"], button { margin-top: 30px; } - .object-tools { - text-align: left; + /* Forms */ + + .titles-and-tools { + flex-direction: column; } - /* Forms */ + .object-tools { + margin-bottom: 10px; + } .form-row { padding: 15px 0; diff --git a/django/contrib/admin/static/admin/css/responsive_rtl.css b/django/contrib/admin/static/admin/css/responsive_rtl.css index cd3286768871..34a3462b6c03 100644 --- a/django/contrib/admin/static/admin/css/responsive_rtl.css +++ b/django/contrib/admin/static/admin/css/responsive_rtl.css @@ -53,10 +53,6 @@ margin-right: 0; } - [dir="rtl"] .object-tools { - text-align: right; - } - [dir="rtl"] .aligned .vCheckboxLabel { padding: 1px 5px 0 0; } diff --git a/django/contrib/admin/static/admin/css/rtl.css b/django/contrib/admin/static/admin/css/rtl.css index aa7c4e8636d6..4726aceb9c4d 100644 --- a/django/contrib/admin/static/admin/css/rtl.css +++ b/django/contrib/admin/static/admin/css/rtl.css @@ -25,10 +25,6 @@ th { background-position: 100% 1px; } -.object-tools { - text-align: left; -} - .object-tools li + li { margin-right: 15px; margin-left: 0; diff --git a/django/contrib/admin/templates/admin/base.html b/django/contrib/admin/templates/admin/base.html index 73121e511498..066f5fa65c3f 100644 --- a/django/contrib/admin/templates/admin/base.html +++ b/django/contrib/admin/templates/admin/base.html @@ -98,11 +98,15 @@ {% endblock messages %}
- {% block pretitle %}{% endblock %} - {% block content_title %}{% if title %}

{{ title }}

{% endif %}{% endblock %} - {% block content_subtitle %}{% if subtitle %}

{{ subtitle }}

{% endif %}{% endblock %} - {% block content %} +
+
+ {% block pretitle %}{% endblock %} + {% block content_title %}{% if title %}

{{ title }}

{% endif %}{% endblock %} + {% block content_subtitle %}{% if subtitle %}

{{ subtitle }}

{% endif %}{% endblock %} +
{% block object-tools %}{% endblock %} +
+ {% block content %} {{ content }} {% endblock %} {% block sidebar %}{% endblock %} diff --git a/django/contrib/admin/templates/admin/change_form.html b/django/contrib/admin/templates/admin/change_form.html index 2e06fab63f7e..9b09fb995254 100644 --- a/django/contrib/admin/templates/admin/change_form.html +++ b/django/contrib/admin/templates/admin/change_form.html @@ -24,7 +24,6 @@ {% endblock %} {% endif %} -{% block content %}
{% block object-tools %} {% if change and not is_popup %} {% endif %} {% endblock %} + +{% block content %}
{% csrf_token %}{% block form_top %}{% endblock %}
{% if is_popup %}{% endif %} diff --git a/django/contrib/admin/templates/admin/change_list.html b/django/contrib/admin/templates/admin/change_list.html index 42e157a85ef7..78eef882945d 100644 --- a/django/contrib/admin/templates/admin/change_list.html +++ b/django/contrib/admin/templates/admin/change_list.html @@ -39,15 +39,16 @@ {% block coltype %}{% endblock %} +{% block object-tools %} +
    + {% block object-tools-items %} + {% change_list_object_tools %} + {% endblock %} +
+{% endblock %} + {% block content %}
- {% block object-tools %} -
    - {% block object-tools-items %} - {% change_list_object_tools %} - {% endblock %} -
- {% endblock %} {% if cl.formset and cl.formset.errors %}

{% blocktranslate count counter=cl.formset.total_error_count %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktranslate %} diff --git a/docs/intro/_images/admin04t.png b/docs/intro/_images/admin04t.png index ef5e12b93c8d..4558ac5228ac 100644 Binary files a/docs/intro/_images/admin04t.png and b/docs/intro/_images/admin04t.png differ diff --git a/docs/intro/_images/admin05t.png b/docs/intro/_images/admin05t.png index f4e3214721c9..3ff15fc36f4e 100644 Binary files a/docs/intro/_images/admin05t.png and b/docs/intro/_images/admin05t.png differ diff --git a/docs/intro/_images/admin07t.png b/docs/intro/_images/admin07t.png new file mode 100644 index 000000000000..c03a7833f9c8 Binary files /dev/null and b/docs/intro/_images/admin07t.png differ diff --git a/docs/intro/_images/admin08t.png b/docs/intro/_images/admin08t.png index 23f48fdd41f1..046d025859ba 100644 Binary files a/docs/intro/_images/admin08t.png and b/docs/intro/_images/admin08t.png differ diff --git a/docs/intro/_images/admin12t.png b/docs/intro/_images/admin12t.png index b79465a4ac3e..a84a0cb28f12 100644 Binary files a/docs/intro/_images/admin12t.png and b/docs/intro/_images/admin12t.png differ diff --git a/docs/intro/_images/admin13t.png b/docs/intro/_images/admin13t.png index 1567d32393de..1d857cbaf535 100644 Binary files a/docs/intro/_images/admin13t.png and b/docs/intro/_images/admin13t.png differ diff --git a/docs/ref/contrib/admin/_images/list_filter.png b/docs/ref/contrib/admin/_images/list_filter.png index bdb58f9f3853..962c4b3cae09 100644 Binary files a/docs/ref/contrib/admin/_images/list_filter.png and b/docs/ref/contrib/admin/_images/list_filter.png differ diff --git a/docs/releases/6.1.txt b/docs/releases/6.1.txt index d10225dfdf80..2539e599c786 100644 --- a/docs/releases/6.1.txt +++ b/docs/releases/6.1.txt @@ -401,6 +401,8 @@ backends. * The ``wide`` class is removed, as it was made obsolete by the new layout. +* The ``object-tools`` block is hoisted out of the ``content`` block in forms. + :mod:`django.contrib.gis` -------------------------