From b8912a4eff3c997b2bfadea2896c1d82a303d0f0 Mon Sep 17 00:00:00 2001 From: Jennifer Richards Date: Fri, 15 Apr 2022 17:49:16 -0300 Subject: [PATCH] fix: treat str input as None in the person_link tag (#3832) --- ietf/person/templatetags/person_filters.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/ietf/person/templatetags/person_filters.py b/ietf/person/templatetags/person_filters.py index 1278afab7..f1f9e69be 100644 --- a/ietf/person/templatetags/person_filters.py +++ b/ietf/person/templatetags/person_filters.py @@ -37,10 +37,19 @@ def person_by_name(name): @register.inclusion_tag("person/person_link.html") def person_link(person, **kwargs): + """Render a link to a Person + + If person is None or a string, renders as a span containing '(None)'. + """ + if isinstance(person, str): + # If person is a string, most likely an invalid template variable was referenced. + # That normally comes in as an empty string, but may be non-empty if string_if_invalid + # is set. Translate strings into None to try to get consistent behavior. + person = None title = kwargs.get("title", "") cls = kwargs.get("class", "") with_email = kwargs.get("with_email", True) - if person: + if person is not None: plain_name = person.plain_name() name = ( person.name