@register.filter()
def traffic_light(value):
mapping = {
YES: {
"label": _("Overall recommendation: Yes"),
"class": "triangle-up text-success",
},
MAYBE: {
"label": _("Overall recommendation: Maybe"),
"class": "circle text-warning",
},
NO: {
"label": _("Overall recommendation: No"),
"class": "triangle-down text-error",
},
}
try:
html = """
<div class="flex items-center">
<span class="size-3 {class}" aria-hidden=true></span>
<span class="sr-only">{label}</span>
</div>
"""
return format_html(html, **mapping[value])
except KeyError:
return ""