diff --git a/core/templates/core/page_list.jinja b/core/templates/core/page_list.jinja
index dfb8ea48..7a64035b 100644
--- a/core/templates/core/page_list.jinja
+++ b/core/templates/core/page_list.jinja
@@ -5,16 +5,12 @@
{% endblock %}
{% block content %}
- {% if page_list %}
-
{% trans %}Page list{% endtrans %}
-
- {% else %}
- {% trans %}There is no page in this website.{% endtrans %}
- {% endif %}
+ {% trans %}Page list{% endtrans %}
+
{% endblock %}
diff --git a/core/views/page.py b/core/views/page.py
index 23898217..db366891 100644
--- a/core/views/page.py
+++ b/core/views/page.py
@@ -12,7 +12,10 @@
# OR WITHIN THE LOCAL FILE "LICENSE"
#
#
+
from django.contrib.auth.mixins import PermissionRequiredMixin
+from django.db.models import F, OuterRef, Subquery
+from django.db.models.functions import Coalesce
# This file contains all the views that concern the page model
from django.forms.models import modelform_factory
@@ -43,6 +46,20 @@ class CanEditPagePropMixin(CanEditPropMixin):
class PageListView(CanViewMixin, ListView):
model = Page
template_name = "core/page_list.jinja"
+ queryset = (
+ Page.objects.annotate(
+ display_name=Coalesce(
+ Subquery(
+ PageRev.objects.filter(page=OuterRef("id"))
+ .order_by("-date")
+ .values("title")[:1]
+ ),
+ F("name"),
+ )
+ )
+ .prefetch_related("view_groups")
+ .select_related("parent")
+ )
class PageView(CanViewMixin, DetailView):