From 3f89d4e142df9c8bb8ecb9dd72a51ed52f6d5d6b Mon Sep 17 00:00:00 2001 From: Sage Abdullah Date: Thu, 2 Feb 2023 14:37:45 +0000 Subject: [PATCH] Add ReferencesColumn component --- .../wagtailadmin/tables/references_cell.html | 13 ++++++++++ wagtail/admin/ui/tables.py | 26 +++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 wagtail/admin/templates/wagtailadmin/tables/references_cell.html diff --git a/wagtail/admin/templates/wagtailadmin/tables/references_cell.html b/wagtail/admin/templates/wagtailadmin/tables/references_cell.html new file mode 100644 index 0000000000..a741cc7c5e --- /dev/null +++ b/wagtail/admin/templates/wagtailadmin/tables/references_cell.html @@ -0,0 +1,13 @@ + + + diff --git a/wagtail/admin/ui/tables.py b/wagtail/admin/ui/tables.py index b7c97e833b..5581249819 100644 --- a/wagtail/admin/ui/tables.py +++ b/wagtail/admin/ui/tables.py @@ -278,6 +278,32 @@ class BulkActionsCheckboxColumn(Column): return context +class ReferencesColumn(Column): + cell_template_name = "wagtailadmin/tables/references_cell.html" + + def __init__( + self, + name, + label=None, + accessor=None, + classname=None, + sort_key=None, + width=None, + get_url=None, + ): + super().__init__(name, label, accessor, classname, sort_key, width) + self._get_url_func = get_url + + def get_edit_url(self, instance): + if self._get_url_func: + return self._get_url_func(instance) + + def get_cell_context_data(self, instance, parent_context): + context = super().get_cell_context_data(instance, parent_context) + context["edit_url"] = self.get_edit_url(instance) + return context + + class Table(Component): template_name = "wagtailadmin/tables/table.html" classname = "listing"