From 2b8a0661a7b19a765f1b1be518e82fb5edc2f3bc Mon Sep 17 00:00:00 2001 From: Matt Westcott Date: Tue, 14 Sep 2021 12:09:17 +0100 Subject: [PATCH] handle nulls in UserColumn --- .../wagtailadmin/tables/user_cell.html | 2 +- wagtail/admin/ui/tables.py | 17 ++++++++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/wagtail/admin/templates/wagtailadmin/tables/user_cell.html b/wagtail/admin/templates/wagtailadmin/tables/user_cell.html index 252ea17a51..448a25bf12 100644 --- a/wagtail/admin/templates/wagtailadmin/tables/user_cell.html +++ b/wagtail/admin/templates/wagtailadmin/tables/user_cell.html @@ -1,5 +1,5 @@ - {% if value %} + {% if display_name %} {% include "wagtailadmin/shared/user_avatar.html" with user=value username=display_name %} {% endif %} diff --git a/wagtail/admin/ui/tables.py b/wagtail/admin/ui/tables.py index 59100a9c15..80b4388961 100644 --- a/wagtail/admin/ui/tables.py +++ b/wagtail/admin/ui/tables.py @@ -156,15 +156,22 @@ class UserColumn(Column): """Outputs the username and avatar for a user""" cell_template_name = "wagtailadmin/tables/user_cell.html" + def __init__(self, name, blank_display_name='', **kwargs): + super().__init__(name, **kwargs) + self.blank_display_name = blank_display_name + def get_cell_context_data(self, instance, parent_context): context = super().get_cell_context_data(instance, parent_context) user = context['value'] - try: - full_name = user.get_full_name().strip() - except AttributeError: - full_name = '' - context['display_name'] = full_name or user.get_username() + if user: + try: + full_name = user.get_full_name().strip() + except AttributeError: + full_name = '' + context['display_name'] = full_name or user.get_username() + else: + context['display_name'] = self.blank_display_name return context