From 8a3c47f76afcb45182aa11cc94e5e0443d2836a5 Mon Sep 17 00:00:00 2001 From: Henk-Jan van Hasselaar Date: Wed, 28 Sep 2016 15:55:38 +0200 Subject: [PATCH] Use get_admin_display_title in admin --- CHANGELOG.txt | 1 + CONTRIBUTORS.rst | 1 + docs/reference/pages/model_reference.rst | 2 + docs/releases/1.8.rst | 1 + wagtail/contrib/modeladmin/forms.py | 2 +- wagtail/wagtailadmin/navigation.py | 2 +- .../home/pages_for_moderation.html | 6 +-- .../wagtailadmin/home/recent_edits.html | 22 ++++----- .../wagtailadmin/notifications/approved.html | 2 +- .../wagtailadmin/notifications/approved.txt | 2 +- .../notifications/approved_subject.txt | 2 +- .../wagtailadmin/notifications/rejected.html | 2 +- .../wagtailadmin/notifications/rejected.txt | 2 +- .../notifications/rejected_subject.txt | 2 +- .../page_privacy/ancestor_privacy.html | 2 +- .../wagtailadmin/pages/add_subpage.html | 6 +-- .../wagtailadmin/pages/confirm_delete.html | 4 +- .../wagtailadmin/pages/confirm_move.html | 8 ++-- .../wagtailadmin/pages/confirm_unpublish.html | 4 +- .../templates/wagtailadmin/pages/copy.html | 4 +- .../templates/wagtailadmin/pages/edit.html | 4 +- .../templates/wagtailadmin/pages/index.html | 2 +- .../wagtailadmin/pages/listing/_list.html | 4 +- .../pages/listing/_navigation_choose.html | 2 +- .../pages/listing/_navigation_explore.html | 4 +- .../pages/listing/_navigation_move.html | 2 +- .../pages/listing/_page_title_choose.html | 4 +- .../pages/listing/_page_title_explore.html | 4 +- .../pages/listing/_page_title_move.html | 4 +- .../listing/_parent_page_title_explore.html | 4 +- .../pages/move_choose_destination.html | 4 +- .../wagtailadmin/pages/revisions/index.html | 4 +- .../wagtailadmin/shared/breadcrumb.html | 4 +- .../shared/explorer_nav_child.html | 4 +- .../wagtailadmin/widgets/page_chooser.html | 2 +- .../wagtailadmin/tests/test_explorer_nav.py | 34 ++++++------- .../wagtailadmin/tests/test_pages_views.py | 15 ++++++ wagtail/wagtailadmin/views/home.py | 11 ++++- wagtail/wagtailadmin/views/pages.py | 48 +++++++++---------- wagtail/wagtailadmin/wagtail_hooks.py | 4 +- wagtail/wagtailcore/models.py | 6 +++ wagtail/wagtailcore/tests/test_page_model.py | 4 ++ 42 files changed, 144 insertions(+), 107 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index aa2e0f06c..8aff50402 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -6,6 +6,7 @@ Changelog * Added support of a custom `edit_handler` in site settings (Axel Haustant) * Added `get_landing_page_template` getter method to `AbstractForm` (Gagaro) + * Added `Page.get_admin_display_title` method to override how the title is displayed in the admin (Henk-Jan van Hasselaar) * Fix: `AbstractForm` now respects custom `get_template` methods on the page model (Gagaro) diff --git a/CONTRIBUTORS.rst b/CONTRIBUTORS.rst index 1227ad5e4..253d55e21 100644 --- a/CONTRIBUTORS.rst +++ b/CONTRIBUTORS.rst @@ -172,6 +172,7 @@ Contributors * Mattias Loverot * Ricky Robinett * Axel Haustant +* Henk-Jan van Hasselaar Translators =========== diff --git a/docs/reference/pages/model_reference.rst b/docs/reference/pages/model_reference.rst index 56cb82a23..efd5e382e 100644 --- a/docs/reference/pages/model_reference.rst +++ b/docs/reference/pages/model_reference.rst @@ -111,6 +111,8 @@ In addition to the model fields provided, ``Page`` has many properties and metho .. automethod:: get_template + .. automethod:: get_admin_display_title + .. autoattribute:: preview_modes .. automethod:: serve_preview diff --git a/docs/releases/1.8.rst b/docs/releases/1.8.rst index d68779c93..f38bbe79b 100644 --- a/docs/releases/1.8.rst +++ b/docs/releases/1.8.rst @@ -16,6 +16,7 @@ Minor features * Added support of a custom ``edit_handler`` for site settings. See :ref:`docs for the site settings module `. (Axel Haustant) * Added ``get_landing_page_template`` getter method to ``AbstractForm`` (Gagaro) + * Added ``Page.get_admin_display_title`` method to override how the title is displayed in the admin (Henk-Jan van Hasselaar) Bug fixes diff --git a/wagtail/contrib/modeladmin/forms.py b/wagtail/contrib/modeladmin/forms.py index 4a2414a04..d54831bb6 100644 --- a/wagtail/contrib/modeladmin/forms.py +++ b/wagtail/contrib/modeladmin/forms.py @@ -11,7 +11,7 @@ class PageChoiceField(forms.ModelChoiceField): def label_from_instance(self, obj): bits = [] for ancestor in obj.get_ancestors(inclusive=True).exclude(depth=1): - bits.append(ancestor.title) + bits.append(ancestor.get_admin_display_title()) return mark_safe(''.join(bits)) diff --git a/wagtail/wagtailadmin/navigation.py b/wagtail/wagtailadmin/navigation.py index 1fc9ecdae..81b8acb8a 100644 --- a/wagtail/wagtailadmin/navigation.py +++ b/wagtail/wagtailadmin/navigation.py @@ -72,7 +72,7 @@ def get_navigation_menu_items(user): ) ) - pages = Page.objects.filter(criteria).order_by('path') + pages = Page.objects.filter(criteria).order_by('path').specific() # Turn this into a tree structure: # tree_node = (page, children) diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/home/pages_for_moderation.html b/wagtail/wagtailadmin/templates/wagtailadmin/home/pages_for_moderation.html index e7828e405..77b0bfa25 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/home/pages_for_moderation.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/home/pages_for_moderation.html @@ -21,7 +21,7 @@

- {{ revision.page.title }} + {{ revision.page.get_admin_display_title }} {% include "wagtailadmin/pages/listing/_privacy_indicator.html" with page=revision.page %} {% include "wagtailadmin/pages/listing/_locked_indicator.html" with page=revision.page %} @@ -44,7 +44,7 @@ - {{ revision.page.get_parent.title }} + {{ revision.page.get_parent.get_admin_display_title }} {{ revision.page.content_type.model_class.get_verbose_name }} @@ -52,7 +52,7 @@
{{ revision.created_at|timesince }} ago
by {{ revision.user.get_full_name|default:revision.user.get_username }} - + {% endfor %} diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/home/recent_edits.html b/wagtail/wagtailadmin/templates/wagtailadmin/home/recent_edits.html index b442f919e..5e7b190a0 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/home/recent_edits.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/home/recent_edits.html @@ -15,28 +15,28 @@ - {% for revision in last_edits %} + {% for revision, page in last_edits %}

- {{ revision.page.title }} + {{ page.get_admin_display_title }} - {% include "wagtailadmin/pages/listing/_privacy_indicator.html" with page=revision.page %} - {% include "wagtailadmin/pages/listing/_locked_indicator.html" with page=revision.page %} + {% include "wagtailadmin/pages/listing/_privacy_indicator.html" with page=page %} + {% include "wagtailadmin/pages/listing/_locked_indicator.html" with page=page %}

{{ revision.created_at|timesince }} ago
- {% include "wagtailadmin/shared/page_status_tag.html" with page=revision.page %} + {% include "wagtailadmin/shared/page_status_tag.html" with page=page %} {% endfor %} @@ -44,4 +44,4 @@ -{% endif %} \ No newline at end of file +{% endif %} diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/notifications/approved.html b/wagtail/wagtailadmin/templates/wagtailadmin/notifications/approved.html index 682034bfa..90f825c95 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/notifications/approved.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/notifications/approved.html @@ -2,6 +2,6 @@ {% load i18n %} {% block content %} -

{% blocktrans with title=revision.page.title|safe %}The page "{{ title }}" has been approved.{% endblocktrans %}

+

{% blocktrans with title=revision.page.get_admin_display_title|safe %}The page "{{ title }}" has been approved.{% endblocktrans %}

{% trans "You can view the page here:" %} {{ revision.page.full_url }}

{% endblock %} diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/notifications/approved.txt b/wagtail/wagtailadmin/templates/wagtailadmin/notifications/approved.txt index 762907188..64421c515 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/notifications/approved.txt +++ b/wagtail/wagtailadmin/templates/wagtailadmin/notifications/approved.txt @@ -2,7 +2,7 @@ {% load i18n %} {% block content %} -{% blocktrans with title=revision.page.title|safe %}The page "{{ title }}" has been approved.{% endblocktrans %} +{% blocktrans with title=revision.page.get_admin_display_title|safe %}The page "{{ title }}" has been approved.{% endblocktrans %} {% trans "You can view the page here:" %} {{ revision.page.full_url }} {% endblock %} diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/notifications/approved_subject.txt b/wagtail/wagtailadmin/templates/wagtailadmin/notifications/approved_subject.txt index 492a3e02d..7cac0ae3e 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/notifications/approved_subject.txt +++ b/wagtail/wagtailadmin/templates/wagtailadmin/notifications/approved_subject.txt @@ -1,3 +1,3 @@ {% load i18n %} -{% blocktrans with title=revision.page.title|safe %}The page "{{ title }}" has been approved{% endblocktrans %} +{% blocktrans with title=revision.page.get_admin_display_title|safe %}The page "{{ title }}" has been approved{% endblocktrans %} diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/notifications/rejected.html b/wagtail/wagtailadmin/templates/wagtailadmin/notifications/rejected.html index 532245faa..ca9ffc93e 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/notifications/rejected.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/notifications/rejected.html @@ -2,6 +2,6 @@ {% load i18n %} {% block content %} -

{% blocktrans with title=revision.page.title|safe %}The page "{{ title }}" has been rejected.{% endblocktrans %}

+

{% blocktrans with title=revision.page.get_admin_display_title|safe %}The page "{{ title }}" has been rejected.{% endblocktrans %}

{% trans "You can edit the page here:"%} {{ settings.BASE_URL }}{% url 'wagtailadmin_pages:edit' revision.page.id %}

{% endblock %} diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/notifications/rejected.txt b/wagtail/wagtailadmin/templates/wagtailadmin/notifications/rejected.txt index 130e0cf44..7dc1e5556 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/notifications/rejected.txt +++ b/wagtail/wagtailadmin/templates/wagtailadmin/notifications/rejected.txt @@ -2,7 +2,7 @@ {% load i18n %} {% block content %} -{% blocktrans with title=revision.page.title|safe %}The page "{{ title }}" has been rejected.{% endblocktrans %} +{% blocktrans with title=revision.page.get_admin_display_title|safe %}The page "{{ title }}" has been rejected.{% endblocktrans %} {% trans "You can edit the page here:"%} {{ settings.BASE_URL }}{% url 'wagtailadmin_pages:edit' revision.page.id %} {% endblock %} diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/notifications/rejected_subject.txt b/wagtail/wagtailadmin/templates/wagtailadmin/notifications/rejected_subject.txt index 620ad79a3..575067c54 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/notifications/rejected_subject.txt +++ b/wagtail/wagtailadmin/templates/wagtailadmin/notifications/rejected_subject.txt @@ -1,3 +1,3 @@ {% load i18n %} -{% blocktrans with title=revision.page.title|safe %}The page "{{ title }}" has been rejected{% endblocktrans %} +{% blocktrans with title=revision.page.get_admin_display_title|safe %}The page "{{ title }}" has been rejected{% endblocktrans %} diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/page_privacy/ancestor_privacy.html b/wagtail/wagtailadmin/templates/wagtailadmin/page_privacy/ancestor_privacy.html index 927bff9c8..f70de3bdf 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/page_privacy/ancestor_privacy.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/page_privacy/ancestor_privacy.html @@ -4,5 +4,5 @@

{% trans "This page has been made private by a parent page." %}

-

{% trans "You can edit the privacy settings on:" %} {{ page_with_restriction.title }} +

{% trans "You can edit the privacy settings on:" %} {{ page_with_restriction.get_admin_display_title }}

diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/pages/add_subpage.html b/wagtail/wagtailadmin/templates/wagtailadmin/pages/add_subpage.html index 06550faf9..e223cd66f 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/pages/add_subpage.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/pages/add_subpage.html @@ -2,11 +2,11 @@ {% load i18n %} {% load wagtailadmin_tags %} -{% block titletag %}{% blocktrans with title=parent_page.title %}Create a page in {{ title }}{% endblocktrans %}{% endblock %} +{% block titletag %}{% blocktrans with title=parent_page.get_admin_display_title %}Create a page in {{ title }}{% endblocktrans %}{% endblock %} {% block content %} {% trans "Create a page in" as create_str %} - {% include "wagtailadmin/shared/header.html" with title=create_str subtitle=parent_page.title icon="doc-empty-inverse" %} + {% include "wagtailadmin/shared/header.html" with title=create_str subtitle=parent_page.get_admin_display_title icon="doc-empty-inverse" %}

{% trans "Choose which type of page you'd like to create." %}

@@ -23,7 +23,7 @@ {% blocktrans with page_type=verbose_name %}Pages using {{ page_type }}{% endblocktrans %} - +
{% endfor %} diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/pages/confirm_delete.html b/wagtail/wagtailadmin/templates/wagtailadmin/pages/confirm_delete.html index 0dc74a40d..1c5748fbc 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/pages/confirm_delete.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/pages/confirm_delete.html @@ -1,10 +1,10 @@ {% extends "wagtailadmin/base.html" %} {% load i18n wagtailadmin_tags %} -{% block titletag %}{% blocktrans with title=page.title %}Delete {{ title }}{% endblocktrans %}{% endblock %} +{% block titletag %}{% blocktrans with title=page.get_admin_display_title %}Delete {{ title }}{% endblocktrans %}{% endblock %} {% block content %} {% trans "Delete" as del_str %} - {% include "wagtailadmin/shared/header.html" with title=del_str subtitle=page.title icon="doc-empty-inverse" %} + {% include "wagtailadmin/shared/header.html" with title=del_str subtitle=page.get_admin_display_title icon="doc-empty-inverse" %}

diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/pages/confirm_move.html b/wagtail/wagtailadmin/templates/wagtailadmin/pages/confirm_move.html index 5310ad292..70390cbb3 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/pages/confirm_move.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/pages/confirm_move.html @@ -1,15 +1,15 @@ {% extends "wagtailadmin/base.html" %} {% load i18n %} -{% block titletag %}{% blocktrans with title=page.title %}Move {{ title }}{% endblocktrans %}{% endblock %} +{% block titletag %}{% blocktrans with title=page.get_admin_display_title %}Move {{ title }}{% endblocktrans %}{% endblock %} {% block content %} {% trans "Move" as move_str %} - {% include "wagtailadmin/shared/header.html" with title=move_str subtitle=page_to_move.title icon="doc-empty-inverse" %} + {% include "wagtailadmin/shared/header.html" with title=move_str subtitle=page_to_move.get_admin_display_title icon="doc-empty-inverse" %}

{% if page_to_move.is_leaf %} -

{% blocktrans with title=destination.title %}Are you sure you want to move this page into '{{ title }}'?{% endblocktrans %}

+

{% blocktrans with title=destination.get_admin_display_title %}Are you sure you want to move this page into '{{ title }}'?{% endblocktrans %}

{% else %} -

{% blocktrans with title=destination.title %}Are you sure you want to move this page and all of its children into '{{ title }}'?{% endblocktrans %}

+

{% blocktrans with title=destination.get_admin_display_title %}Are you sure you want to move this page and all of its children into '{{ title }}'?{% endblocktrans %}

{% endif %}
diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/pages/confirm_unpublish.html b/wagtail/wagtailadmin/templates/wagtailadmin/pages/confirm_unpublish.html index 8fe3dad15..be884f298 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/pages/confirm_unpublish.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/pages/confirm_unpublish.html @@ -1,9 +1,9 @@ {% extends "wagtailadmin/base.html" %} {% load i18n %} -{% block titletag %}{% blocktrans with title=page.title%}Unpublish {{ title }}{% endblocktrans %}{% endblock %} +{% block titletag %}{% blocktrans with title=page.get_admin_display_title %}Unpublish {{ title }}{% endblocktrans %}{% endblock %} {% block content %} {% trans "Unpublish" as unpublish_str %} - {% include "wagtailadmin/shared/header.html" with title=unpublish_str subtitle=page.title icon="doc-empty-inverse" %} + {% include "wagtailadmin/shared/header.html" with title=unpublish_str subtitle=page.get_admin_display_title icon="doc-empty-inverse" %}

{% trans "Are you sure you want to unpublish this page?" %}

diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/pages/copy.html b/wagtail/wagtailadmin/templates/wagtailadmin/pages/copy.html index 8c372a19b..d8cc24d07 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/pages/copy.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/pages/copy.html @@ -1,9 +1,9 @@ {% extends "wagtailadmin/base.html" %} {% load i18n %} -{% block titletag %}{% blocktrans with title=page.title %}Copy {{ title }}{% endblocktrans %}{% endblock %} +{% block titletag %}{% blocktrans with title=page.get_admin_display_title %}Copy {{ title }}{% endblocktrans %}{% endblock %} {% block content %} {% trans "Copy" as copy_str %} - {% include "wagtailadmin/shared/header.html" with title=copy_str subtitle=page.title icon="doc-empty-inverse" %} + {% include "wagtailadmin/shared/header.html" with title=copy_str subtitle=page.get_admin_display_title icon="doc-empty-inverse" %}
diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/pages/edit.html b/wagtail/wagtailadmin/templates/wagtailadmin/pages/edit.html index a1ed7f9f5..d71eea35c 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/pages/edit.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/pages/edit.html @@ -2,7 +2,7 @@ {% load wagtailadmin_tags %} {% load gravatar %} {% load i18n %} -{% block titletag %}{% blocktrans with title=page.title page_type=content_type.model_class.get_verbose_name %}Editing {{ page_type }}: {{ title }}{% endblocktrans %}{% endblock %} +{% block titletag %}{% blocktrans with title=page.get_admin_display_title page_type=content_type.model_class.get_verbose_name %}Editing {{ page_type }}: {{ title }}{% endblocktrans %}{% endblock %} {% block bodyclass %}page-editor {% if page.live %}page-is-live{% endif %} model-{{ content_type.model }}{% endblock %} {% block content %} @@ -12,7 +12,7 @@
-

{% blocktrans with title=page.title page_type=content_type.model_class.get_verbose_name %}Editing {{ page_type }} {{ title }}{% endblocktrans %}

+

{% blocktrans with title=page.get_admin_display_title page_type=content_type.model_class.get_verbose_name %}Editing {{ page_type }} {{ title }}{% endblocktrans %}

{% trans "Status" %} diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/pages/index.html b/wagtail/wagtailadmin/templates/wagtailadmin/pages/index.html index 63f9a256c..fd76e4356 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/pages/index.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/pages/index.html @@ -1,6 +1,6 @@ {% extends "wagtailadmin/base.html" %} {% load wagtailadmin_tags staticfiles i18n %} -{% block titletag %}{% blocktrans with title=parent_page.title %}Exploring {{ title }}{% endblocktrans %}{% endblock %} +{% block titletag %}{% blocktrans with title=parent_page.get_admin_display_title %}Exploring {{ title }}{% endblocktrans %}{% endblock %} {% block bodyclass %}page-explorer {% if ordering == 'ord' %}reordering{% endif %}{% endblock %} {% block content %} diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/pages/listing/_list.html b/wagtail/wagtailadmin/templates/wagtailadmin/pages/listing/_list.html index b7b37b3f6..a03aedf08 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/pages/listing/_list.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/pages/listing/_list.html @@ -45,7 +45,7 @@ {% if pages %} {% for page in pages %} {% page_permissions page as page_perms %} - + {% if show_ordering_column %} {% if orderable and ordering == "ord" %}
{% trans 'Drag' %}
{% endif %} {% endif %} @@ -57,7 +57,7 @@ {% with page.get_parent as parent %} {% if parent %} - {{ parent.title }} + {{ parent.get_admin_display_title }} {% endif %} {% endwith %} diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/pages/listing/_navigation_choose.html b/wagtail/wagtailadmin/templates/wagtailadmin/pages/listing/_navigation_choose.html index f389d4ef1..4d4599e54 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/pages/listing/_navigation_choose.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/pages/listing/_navigation_choose.html @@ -6,6 +6,6 @@ Navigation controls for the page listing in 'choose' mode {% if allow_navigation and page.can_descend %} - {% trans 'Explore' %} + {% trans 'Explore' %} {% endif %} diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/pages/listing/_navigation_explore.html b/wagtail/wagtailadmin/templates/wagtailadmin/pages/listing/_navigation_explore.html index 7864ac7a7..4b6ae2d65 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/pages/listing/_navigation_explore.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/pages/listing/_navigation_explore.html @@ -7,9 +7,9 @@ Navigation controls for the page listing in 'explore' mode {% if allow_navigation %} {% if page.is_navigable %} - {% trans "Explore" %} + {% trans "Explore" %} {% elif page_perms.can_add_subpage %} - {% trans 'Add subpage' %} + {% trans 'Add subpage' %} {% endif %} {% endif %} diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/pages/listing/_navigation_move.html b/wagtail/wagtailadmin/templates/wagtailadmin/pages/listing/_navigation_move.html index 18bcd958b..10a475735 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/pages/listing/_navigation_move.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/pages/listing/_navigation_move.html @@ -6,6 +6,6 @@ Navigation controls for the page listing in 'move' mode {% if page.can_descend %} - {% trans 'Explore' %} + {% trans 'Explore' %} {% endif %} diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/pages/listing/_page_title_choose.html b/wagtail/wagtailadmin/templates/wagtailadmin/pages/listing/_page_title_choose.html index aaa86f9b5..e16101258 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/pages/listing/_page_title_choose.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/pages/listing/_page_title_choose.html @@ -6,9 +6,9 @@ Expects a variable 'page', the page instance.

{% if page.can_choose %} - {{ page.title }} + {{ page.get_admin_display_title }} {% else %} - {{ page.title }} + {{ page.get_admin_display_title }} {% endif %} {% include "wagtailadmin/pages/listing/_privacy_indicator.html" with page=page %} diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/pages/listing/_page_title_explore.html b/wagtail/wagtailadmin/templates/wagtailadmin/pages/listing/_page_title_explore.html index e5e9606b2..157f6624e 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/pages/listing/_page_title_explore.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/pages/listing/_page_title_explore.html @@ -4,9 +4,9 @@

{% if page_perms.can_edit %} - {{ page.title }} + {{ page.get_admin_display_title }} {% else %} - {{ page.title }} + {{ page.get_admin_display_title }} {% endif %} {% include "wagtailadmin/pages/listing/_privacy_indicator.html" with page=page %} diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/pages/listing/_page_title_move.html b/wagtail/wagtailadmin/templates/wagtailadmin/pages/listing/_page_title_move.html index cf80888a9..6aa76b90d 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/pages/listing/_page_title_move.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/pages/listing/_page_title_move.html @@ -6,9 +6,9 @@ Expects a variable 'page', the page instance.

{% if page.can_choose %} - {{ page.title }} + {{ page.specific.get_admin_display_title }} {% else %} - {{ page.title }} + {{ page.get_admin_display_title }} {% endif %} {% include "wagtailadmin/pages/listing/_privacy_indicator.html" with page=page %} diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/pages/listing/_parent_page_title_explore.html b/wagtail/wagtailadmin/templates/wagtailadmin/pages/listing/_parent_page_title_explore.html index 3f08bd53d..a98ae3d2e 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/pages/listing/_parent_page_title_explore.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/pages/listing/_parent_page_title_explore.html @@ -5,9 +5,9 @@

{% if parent_page_perms.can_edit %} - {{ parent_page.title }} + {{ parent_page.get_admin_display_title }} {% else %} - {{ parent_page.title }} + {{ parent_page.get_admin_display_title }} {% endif %} {% include "wagtailadmin/pages/listing/_locked_indicator.html" with page=parent_page %} diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/pages/move_choose_destination.html b/wagtail/wagtailadmin/templates/wagtailadmin/pages/move_choose_destination.html index 75834c1aa..a1fb66636 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/pages/move_choose_destination.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/pages/move_choose_destination.html @@ -1,9 +1,9 @@ {% extends "wagtailadmin/base.html" %} {% load i18n wagtailadmin_tags %} -{% block titletag %}{% blocktrans with title=page_to_move.title %}Select a new parent page for {{ title }}{% endblocktrans %}{% endblock %} +{% block titletag %}{% blocktrans with title=page_to_move.get_admin_display_title %}Select a new parent page for {{ title }}{% endblocktrans %}{% endblock %} {% block content %}
-

{% blocktrans with title=page_to_move.title %}Select a new parent page for {{ title }}{% endblocktrans %}

+

{% blocktrans with title=page_to_move.get_admin_display_title %}Select a new parent page for {{ title }}{% endblocktrans %}

diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/pages/revisions/index.html b/wagtail/wagtailadmin/templates/wagtailadmin/pages/revisions/index.html index 96ad5ed27..6fc05a4e9 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/pages/revisions/index.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/pages/revisions/index.html @@ -1,11 +1,11 @@ {% extends "wagtailadmin/base.html" %} {% load i18n %} -{% block titletag %}{% blocktrans with title=page.title %}Revisions of {{ title }}{% endblocktrans %}{% endblock %} +{% block titletag %}{% blocktrans with title=page.get_admin_display_title %}Revisions of {{ title }}{% endblocktrans %}{% endblock %} {% block content %} {% trans "Revisions of" as revisions_str %} - {% include "wagtailadmin/shared/header.html" with title=revisions_str subtitle=page.title icon="doc-empty-inverse" %} + {% include "wagtailadmin/shared/header.html" with title=revisions_str subtitle=page.get_admin_display_title icon="doc-empty-inverse" %}
diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/shared/breadcrumb.html b/wagtail/wagtailadmin/templates/wagtailadmin/shared/breadcrumb.html index 0b2458e7b..3653e8fa6 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/shared/breadcrumb.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/shared/breadcrumb.html @@ -5,10 +5,10 @@ {% if page.is_root %}
  • {% trans 'Home' %}
  • {% else %} -
  • {{ page.title }}
  • +
  • {{ page.get_admin_display_title }}
  • {% endif %} {% endfor %} {% if include_self %} -
  • {{ page.title }}
  • +
  • {{ page.get_admin_display_title }}
  • {% endif %} diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/shared/explorer_nav_child.html b/wagtail/wagtailadmin/templates/wagtailadmin/shared/explorer_nav_child.html index c2d011540..7a95d2a5f 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/shared/explorer_nav_child.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/shared/explorer_nav_child.html @@ -2,7 +2,7 @@ {% for page, children in nodes %}
  • - {{ page.title }} + {{ page.get_admin_display_title }} {% if children %}
      @@ -10,4 +10,4 @@
    {% endif %}
  • -{% endfor %} \ No newline at end of file +{% endfor %} diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/widgets/page_chooser.html b/wagtail/wagtailadmin/templates/wagtailadmin/widgets/page_chooser.html index 8f22f1452..3506d6103 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/widgets/page_chooser.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/widgets/page_chooser.html @@ -1,7 +1,7 @@ {% extends "wagtailadmin/widgets/chooser.html" %} {% block chosen_state_view %} - {{ page.title }} + {{ page.get_admin_display_title }} {% endblock %} {% block edit_chosen_item_url %}{% if page %}{% url 'wagtailadmin_pages:edit' page.id %}{% endif %}{% endblock %} diff --git a/wagtail/wagtailadmin/tests/test_explorer_nav.py b/wagtail/wagtailadmin/tests/test_explorer_nav.py index c869e3f9f..bf78ab5c6 100644 --- a/wagtail/wagtailadmin/tests/test_explorer_nav.py +++ b/wagtail/wagtailadmin/tests/test_explorer_nav.py @@ -52,13 +52,13 @@ class TestExplorerNavView(TestCase, WagtailTestUtils): self.assertEqual(response.status_code, 200) self.assertTemplateUsed('wagtailadmin/shared/explorer_nav.html') self.assertEqual(len(response.context['nodes']), 3) - self.assertEqual(response.context['nodes'][0][0], Page.objects.get(id=2)) - self.assertEqual(response.context['nodes'][1][0], Page.objects.get(id=4)) - self.assertEqual(response.context['nodes'][1][1][0][0], Page.objects.get(id=5)) - self.assertEqual(response.context['nodes'][1][1][0][1][0][0], Page.objects.get(id=7)) + self.assertEqual(response.context['nodes'][0][0], Page.objects.get(id=2).specific) + self.assertEqual(response.context['nodes'][1][0], Page.objects.get(id=4).specific) + self.assertEqual(response.context['nodes'][1][1][0][0], Page.objects.get(id=5).specific) + self.assertEqual(response.context['nodes'][1][1][0][1][0][0], Page.objects.get(id=7).specific) # Even though example.com's Home 2 has no children, it's still displayed because it's at # the top menu level for this user - self.assertEqual(response.context['nodes'][2][0], Page.objects.get(id=10)) + self.assertEqual(response.context['nodes'][2][0], Page.objects.get(id=10).specific) def test_nav_root_for_nonadmin_is_closest_common_ancestor(self): self.assertTrue(self.client.login(username='jane', password='password')) @@ -67,7 +67,7 @@ class TestExplorerNavView(TestCase, WagtailTestUtils): self.assertEqual(response.status_code, 200) self.assertTemplateUsed('wagtailadmin/shared/explorer_nav.html') self.assertEqual(len(response.context['nodes']), 1) - self.assertEqual(response.context['nodes'][0][0], Page.objects.get(id=2)) + self.assertEqual(response.context['nodes'][0][0], Page.objects.get(id=2).specific) self.client.logout() self.assertTrue(self.client.login(username='sam', password='password')) @@ -76,8 +76,8 @@ class TestExplorerNavView(TestCase, WagtailTestUtils): self.assertEqual(response.status_code, 200) self.assertTemplateUsed('wagtailadmin/shared/explorer_nav.html') self.assertEqual(len(response.context['nodes']), 2) - self.assertEqual(response.context['nodes'][0][0], Page.objects.get(id=2)) - self.assertEqual(response.context['nodes'][1][0], Page.objects.get(id=4)) + self.assertEqual(response.context['nodes'][0][0], Page.objects.get(id=2).specific) + self.assertEqual(response.context['nodes'][1][0], Page.objects.get(id=4).specific) def test_nonadmin_sees_leaf_pages_at_root_level(self): self.assertTrue(self.client.login(username='bob', password='password')) @@ -89,7 +89,7 @@ class TestExplorerNavView(TestCase, WagtailTestUtils): self.assertEqual(response.status_code, 200) self.assertTemplateUsed('wagtailadmin/shared/explorer_nav.html') self.assertEqual(len(response.context['nodes']), 1) - self.assertEqual(response.context['nodes'][0][0], Page.objects.get(id=6)) + self.assertEqual(response.context['nodes'][0][0], Page.objects.get(id=6).specific) self.assertEqual(len(response.context['nodes'][0][1]), 0) def test_nonadmin_sees_pages_below_closest_common_ancestor(self): @@ -104,13 +104,13 @@ class TestExplorerNavView(TestCase, WagtailTestUtils): self.assertTemplateUsed('wagtailadmin/shared/explorer_nav.html') self.assertEqual(len(response.context['nodes']), 2) - self.assertEqual(response.context['nodes'][0][0], Page.objects.get(id=5)) + self.assertEqual(response.context['nodes'][0][0], Page.objects.get(id=5).specific) # page-1 is childless, but user has direct permission on it, so it should be shown self.assertEqual(len(response.context['nodes'][0][1]), 1) - self.assertEqual(response.context['nodes'][0][1][0][0], Page.objects.get(id=6)) + self.assertEqual(response.context['nodes'][0][1][0][0], Page.objects.get(id=6).specific) self.assertEqual(len(response.context['nodes'][0][1][0][1]), 0) - self.assertEqual(response.context['nodes'][1][0], Page.objects.get(id=8)) + self.assertEqual(response.context['nodes'][1][0], Page.objects.get(id=8).specific) self.assertEqual(len(response.context['nodes'][1][1]), 0) def test_nonadmin_sees_only_explorable_pages(self): @@ -128,13 +128,13 @@ class TestExplorerNavView(TestCase, WagtailTestUtils): self.assertEqual(len(response.context['nodes']), 2) # Sam should see the testserver homepage, the example.com homepage, and the Content page, # but should not see Page 2. - self.assertEqual(response.context['nodes'][0][0], Page.objects.get(id=2)) - self.assertEqual(response.context['nodes'][1][0], Page.objects.get(id=4)) - self.assertEqual(response.context['nodes'][1][1][0][0], Page.objects.get(id=5)) + self.assertEqual(response.context['nodes'][0][0], Page.objects.get(id=2).specific) + self.assertEqual(response.context['nodes'][1][0], Page.objects.get(id=4).specific) + self.assertEqual(response.context['nodes'][1][1][0][0], Page.objects.get(id=5).specific) self.assertEqual(len(response.context['nodes'][1][1][0][1]), 1) # page-1 is included in the menu, despite being a leaf node, because Sam has direct # permission on it - self.assertEqual(response.context['nodes'][1][1][0][1][0][0], Page.objects.get(id=6)) + self.assertEqual(response.context['nodes'][1][1][0][1][0][0], Page.objects.get(id=6).specific) self.client.logout() self.assertTrue(self.client.login(username='jane', password='password')) @@ -143,7 +143,7 @@ class TestExplorerNavView(TestCase, WagtailTestUtils): self.assertEqual(response.status_code, 200) self.assertTemplateUsed('wagtailadmin/shared/explorer_nav.html') self.assertEqual(len(response.context['nodes']), 1) - self.assertEqual(response.context['nodes'][0][0], Page.objects.get(id=2)) + self.assertEqual(response.context['nodes'][0][0], Page.objects.get(id=2).specific) self.assertEqual(len(response.context['nodes'][0][1]), 0) def test_nonadmin_with_no_page_perms_sees_nothing_in_nav(self): diff --git a/wagtail/wagtailadmin/tests/test_pages_views.py b/wagtail/wagtailadmin/tests/test_pages_views.py index 006f514ef..22a201dd2 100644 --- a/wagtail/wagtailadmin/tests/test_pages_views.py +++ b/wagtail/wagtailadmin/tests/test_pages_views.py @@ -25,6 +25,7 @@ from wagtail.tests.testapp.models import ( EventPage, EventPageCarouselItem, FilePage, SimplePage, SingleEventPage, SingletonPage, StandardChild, StandardIndex, TaggedPage) from wagtail.tests.utils import WagtailTestUtils +from wagtail.wagtailadmin.views.home import RecentEditsPanel from wagtail.wagtailcore.models import GroupPagePermission, Page, PageRevision, Site from wagtail.wagtailcore.signals import page_published, page_unpublished from wagtail.wagtailsearch.index import SearchField @@ -3513,6 +3514,20 @@ class TestRecentEditsPanel(TestCase, WagtailTestUtils): response = self.go_to_dashboard_response() self.assertIn('Your most recent edits', response.content.decode('utf-8')) + def test_panel(self): + """Test if the panel actually returns expected pages """ + self.client.login(username='bob', password='password') + # change a page + self.change_something("Bob's edit") + # set a user to 'mock' a request + self.client.user = get_user_model().objects.get(email='bob@email.com') + # get the panel to get the last edits + panel = RecentEditsPanel(self.client) + # check if the revision is the revision of edited Page + self.assertEqual(panel.last_edits[0][0].page, Page.objects.get(pk=self.child_page.id)) + # check if the page in this list is the specific page of this revision + self.assertEqual(panel.last_edits[0][1], Page.objects.get(pk=self.child_page.id).specific) + class TestIssue2994(TestCase, WagtailTestUtils): """ diff --git a/wagtail/wagtailadmin/views/home.py b/wagtail/wagtailadmin/views/home.py index f9194ebb1..e5ccebf38 100644 --- a/wagtail/wagtailadmin/views/home.py +++ b/wagtail/wagtailadmin/views/home.py @@ -6,7 +6,7 @@ from django.template.loader import render_to_string from wagtail.wagtailadmin.site_summary import SiteSummaryPanel from wagtail.wagtailcore import hooks -from wagtail.wagtailcore.models import PageRevision, UserPagePermissionsProxy +from wagtail.wagtailcore.models import Page, PageRevision, UserPagePermissionsProxy # Panels for the homepage @@ -48,7 +48,7 @@ class RecentEditsPanel(object): def __init__(self, request): self.request = request # Last n edited pages - self.last_edits = PageRevision.objects.raw( + last_edits = PageRevision.objects.raw( """ SELECT wp.* FROM wagtailcore_pagerevision wp JOIN ( @@ -56,6 +56,13 @@ class RecentEditsPanel(object): wagtailcore_pagerevision WHERE user_id = %s GROUP BY page_id ORDER BY max_created_at DESC LIMIT %s ) AS max_rev ON max_rev.max_created_at = wp.created_at ORDER BY wp.created_at DESC """, [self.request.user.pk, 5]) + last_edits = list(last_edits) + page_keys = [pr.page.pk for pr in last_edits] + specific_pages = Page.objects.filter(pk__in=page_keys).specific() + pages = {p.pk: p for p in specific_pages} + self.last_edits = [ + [review, pages.get(review.page.pk)] for review in last_edits + ] def render(self): return render_to_string('wagtailadmin/home/recent_edits.html', { diff --git a/wagtail/wagtailadmin/views/pages.py b/wagtail/wagtailadmin/views/pages.py index 24b311b4c..ea9cef4f6 100644 --- a/wagtail/wagtailadmin/views/pages.py +++ b/wagtail/wagtailadmin/views/pages.py @@ -97,7 +97,7 @@ def index(request, parent_page_id=None): paginator, pages = paginate(request, pages, per_page=50) return render(request, 'wagtailadmin/pages/index.html', { - 'parent_page': parent_page, + 'parent_page': parent_page.specific, 'ordering': ordering, 'pagination_query_params': "ordering=%s" % ordering, 'pages': pages, @@ -219,18 +219,18 @@ def create(request, content_type_app_name, content_type_model_name, parent_page_ # Notifications if is_publishing: if page.go_live_at and page.go_live_at > timezone.now(): - messages.success(request, _("Page '{0}' created and scheduled for publishing.").format(page.title), buttons=[ + messages.success(request, _("Page '{0}' created and scheduled for publishing.").format(page.get_admin_display_title()), buttons=[ messages.button(reverse('wagtailadmin_pages:edit', args=(page.id,)), _('Edit')) ]) else: - messages.success(request, _("Page '{0}' created and published.").format(page.title), buttons=[ + messages.success(request, _("Page '{0}' created and published.").format(page.get_admin_display_title()), buttons=[ messages.button(page.url, _('View live')), messages.button(reverse('wagtailadmin_pages:edit', args=(page.id,)), _('Edit')) ]) elif is_submitting: messages.success( request, - _("Page '{0}' created and submitted for moderation.").format(page.title), + _("Page '{0}' created and submitted for moderation.").format(page.get_admin_display_title()), buttons=[ messages.button(reverse('wagtailadmin_pages:view_draft', args=(page.id,)), _('View draft')), messages.button(reverse('wagtailadmin_pages:edit', args=(page.id,)), _('Edit')) @@ -239,7 +239,7 @@ def create(request, content_type_app_name, content_type_model_name, parent_page_ if not send_notification(page.get_latest_revision().id, 'submitted', request.user.pk): messages.error(request, _("Failed to send notifications to moderators")) else: - messages.success(request, _("Page '{0}' created.").format(page.title)) + messages.success(request, _("Page '{0}' created.").format(page.get_admin_display_title())) for fn in hooks.get_hooks('after_create_page'): result = fn(request, page) @@ -345,13 +345,13 @@ def edit(request, page_id): "Revision from {0} of page '{1}' has been scheduled for publishing." ).format( previous_revision.created_at.strftime("%d %b %Y %H:%M"), - page.title + page.get_admin_display_title() ) else: message = _( "Page '{0}' has been scheduled for publishing." ).format( - page.title + page.get_admin_display_title() ) messages.success(request, message, buttons=[ @@ -369,13 +369,13 @@ def edit(request, page_id): "Revision from {0} of page '{1}' has been published." ).format( previous_revision.created_at.strftime("%d %b %Y %H:%M"), - page.title + page.get_admin_display_title() ) else: message = _( "Page '{0}' has been published." ).format( - page.title + page.get_admin_display_title() ) messages.success(request, message, buttons=[ @@ -394,7 +394,7 @@ def edit(request, page_id): message = _( "Page '{0}' has been submitted for moderation." ).format( - page.title + page.get_admin_display_title() ) messages.success(request, message, buttons=[ @@ -417,14 +417,14 @@ def edit(request, page_id): message = _( "Page '{0}' has been replaced with revision from {1}." ).format( - page.title, + page.get_admin_display_title(), previous_revision.created_at.strftime("%d %b %Y %H:%M") ) else: message = _( "Page '{0}' has been updated." ).format( - page.title + page.get_admin_display_title() ) messages.success(request, message) @@ -501,7 +501,7 @@ def delete(request, page_id): parent_id = page.get_parent().id page.delete() - messages.success(request, _("Page '{0}' deleted.").format(page.title)) + messages.success(request, _("Page '{0}' deleted.").format(page.get_admin_display_title())) for fn in hooks.get_hooks('after_delete_page'): result = fn(request, page) @@ -673,7 +673,7 @@ def unpublish(request, page_id): if user_perms.for_page(live_descendant_page).can_unpublish(): live_descendant_page.unpublish() - messages.success(request, _("Page '{0}' unpublished.").format(page.title), buttons=[ + messages.success(request, _("Page '{0}' unpublished.").format(page.get_admin_display_title()), buttons=[ messages.button(reverse('wagtailadmin_pages:edit', args=(page.id,)), _('Edit')) ]) @@ -735,7 +735,7 @@ def move_confirm(request, page_to_move_id, destination_id): # so don't bother to catch InvalidMoveToDescendant page_to_move.move(destination, pos='last-child') - messages.success(request, _("Page '{0}' moved.").format(page_to_move.title), buttons=[ + messages.success(request, _("Page '{0}' moved.").format(page_to_move.get_admin_display_title()), buttons=[ messages.button(reverse('wagtailadmin_pages:edit', args=(page_to_move.id,)), _('Edit')) ]) @@ -834,10 +834,10 @@ def copy(request, page_id): if form.cleaned_data.get('copy_subpages'): messages.success( request, - _("Page '{0}' and {1} subpages copied.").format(page.title, new_page.get_descendants().count()) + _("Page '{0}' and {1} subpages copied.").format(page.get_admin_display_title(), new_page.get_descendants().count()) ) else: - messages.success(request, _("Page '{0}' copied.").format(page.title)) + messages.success(request, _("Page '{0}' copied.").format(page.get_admin_display_title())) # Redirect to explore of parent page if next_url: @@ -887,12 +887,12 @@ def approve_moderation(request, revision_id): raise PermissionDenied if not revision.submitted_for_moderation: - messages.error(request, _("The page '{0}' is not currently awaiting moderation.").format(revision.page.title)) + messages.error(request, _("The page '{0}' is not currently awaiting moderation.").format(revision.page.get_admin_display_title())) return redirect('wagtailadmin_home') if request.method == 'POST': revision.approve_moderation() - messages.success(request, _("Page '{0}' published.").format(revision.page.title), buttons=[ + messages.success(request, _("Page '{0}' published.").format(revision.page.get_admin_display_title()), buttons=[ messages.button(revision.page.url, _('View live')), messages.button(reverse('wagtailadmin_pages:edit', args=(revision.page.id,)), _('Edit')) ]) @@ -908,12 +908,12 @@ def reject_moderation(request, revision_id): raise PermissionDenied if not revision.submitted_for_moderation: - messages.error(request, _("The page '{0}' is not currently awaiting moderation.").format(revision.page.title)) + messages.error(request, _("The page '{0}' is not currently awaiting moderation.").format(revision.page.get_admin_display_title())) return redirect('wagtailadmin_home') if request.method == 'POST': revision.reject_moderation() - messages.success(request, _("Page '{0}' rejected for publication.").format(revision.page.title), buttons=[ + messages.success(request, _("Page '{0}' rejected for publication.").format(revision.page.get_admin_display_title()), buttons=[ messages.button(reverse('wagtailadmin_pages:edit', args=(revision.page.id,)), _('Edit')) ]) if not send_notification(revision.id, 'rejected', request.user.pk): @@ -929,7 +929,7 @@ def preview_for_moderation(request, revision_id): raise PermissionDenied if not revision.submitted_for_moderation: - messages.error(request, _("The page '{0}' is not currently awaiting moderation.").format(revision.page.title)) + messages.error(request, _("The page '{0}' is not currently awaiting moderation.").format(revision.page.get_admin_display_title())) return redirect('wagtailadmin_home') page = revision.as_page_object() @@ -955,7 +955,7 @@ def lock(request, page_id): page.locked = True page.save() - messages.success(request, _("Page '{0}' is now locked.").format(page.title)) + messages.success(request, _("Page '{0}' is now locked.").format(page.get_admin_display_title())) # Redirect redirect_to = request.POST.get('next', None) @@ -979,7 +979,7 @@ def unlock(request, page_id): page.locked = False page.save() - messages.success(request, _("Page '{0}' is now unlocked.").format(page.title)) + messages.success(request, _("Page '{0}' is now unlocked.").format(page.get_admin_display_title())) # Redirect redirect_to = request.POST.get('next', None) diff --git a/wagtail/wagtailadmin/wagtail_hooks.py b/wagtail/wagtailadmin/wagtail_hooks.py index 45d6b4024..43de42fba 100644 --- a/wagtail/wagtailadmin/wagtail_hooks.py +++ b/wagtail/wagtailadmin/wagtail_hooks.py @@ -77,10 +77,10 @@ def page_listing_buttons(page, page_perms, is_parent=False): if page_perms.can_add_subpage(): if is_parent: yield Button(_('Add child page'), reverse('wagtailadmin_pages:add_subpage', args=[page.id]), - attrs={'title': _("Add a child page to '{0}' ".format(page.title))}, classes={'button', 'button-small', 'bicolor', 'icon', 'white', 'icon-plus'}, priority=40) + attrs={'title': _("Add a child page to '{0}' ".format(page.get_admin_display_title()))}, classes={'button', 'button-small', 'bicolor', 'icon', 'white', 'icon-plus'}, priority=40) else: yield PageListingButton(_('Add child page'), reverse('wagtailadmin_pages:add_subpage', args=[page.id]), - attrs={'title': _("Add a child page to '{0}' ".format(page.title))}, priority=40) + attrs={'title': _("Add a child page to '{0}' ".format(page.get_admin_display_title()))}, priority=40) yield ButtonWithDropdownFromHook( _('More'), diff --git a/wagtail/wagtailcore/models.py b/wagtail/wagtailcore/models.py index e186bdb61..04de4e75c 100644 --- a/wagtail/wagtailcore/models.py +++ b/wagtail/wagtailcore/models.py @@ -673,6 +673,12 @@ class Page(six.with_metaclass(PageBase, AbstractPage, index.Indexed, Clusterable else: raise Http404 + def get_admin_display_title(self): + """ + Return the title for this page as it should appear in the admin backend. + """ + return self.title + def save_revision(self, user=None, submitted_for_moderation=False, approved_go_live_at=None, changed=True): self.full_clean() diff --git a/wagtail/wagtailcore/tests/test_page_model.py b/wagtail/wagtailcore/tests/test_page_model.py index 7b3492c65..fee917620 100644 --- a/wagtail/wagtailcore/tests/test_page_model.py +++ b/wagtail/wagtailcore/tests/test_page_model.py @@ -83,6 +83,10 @@ class TestValidation(TestCase): homepage.add_child(instance=christmas_page) self.assertTrue(Page.objects.filter(id=christmas_page.id).exists()) + def test_get_admin_display_title(self): + homepage = Page.objects.get(url_path='/home/') + self.assertEquals(homepage.title, homepage.get_admin_display_title()) + @override_settings(ALLOWED_HOSTS=['localhost', 'events.example.com', 'about.example.com', 'unknown.site.com']) class TestSiteRouting(TestCase):