diff --git a/wagtail/admin/templates/wagtailadmin/generic/index.html b/wagtail/admin/templates/wagtailadmin/generic/index.html
index 9b5ad73e8b..af3b9ddfd2 100644
--- a/wagtail/admin/templates/wagtailadmin/generic/index.html
+++ b/wagtail/admin/templates/wagtailadmin/generic/index.html
@@ -1,5 +1,5 @@
{% extends "wagtailadmin/base.html" %}
-{% load i18n %}
+{% load i18n wagtailadmin_tags %}
{% block titletag %}{{ page_title }} {{ page_subtitle }}{% endblock %}
@@ -12,5 +12,8 @@
{% endif %}
{% block listing %}
+
+ {% component table %}
+
{% endblock %}
{% endblock %}
diff --git a/wagtail/admin/views/generic/models.py b/wagtail/admin/views/generic/models.py
index b8978bef6a..577c0a09d8 100644
--- a/wagtail/admin/views/generic/models.py
+++ b/wagtail/admin/views/generic/models.py
@@ -8,6 +8,7 @@ from django.views.generic.edit import BaseCreateView, BaseDeleteView, BaseUpdate
from django.views.generic.list import BaseListView
from wagtail.admin import messages
+from wagtail.admin.ui.tables import Table, TitleColumn
from wagtail.core.log_actions import log
from .base import WagtailAdminTemplateMixin
@@ -19,15 +20,25 @@ class IndexView(PermissionCheckedMixin, WagtailAdminTemplateMixin, BaseListView)
index_url_name = None
add_url_name = None
edit_url_name = None
+ template_name = 'wagtailadmin/generic/index.html'
context_object_name = None
any_permission_required = ['add', 'change', 'delete']
+ def get_columns(self):
+ try:
+ return self.columns
+ except AttributeError:
+ return [
+ TitleColumn('name', accessor=str, url_name=self.edit_url_name),
+ ]
+
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['can_add'] = (
self.permission_policy is None
or self.permission_policy.user_has_permission(self.request.user, 'add')
)
+ context['table'] = Table(self.get_columns(), context['object_list'])
return context