This lets us avoid complex templating.
Signed-off-by: Stephen Finucane <stephen@that.guru>
{% extends "base.html" %}
+{% load admins %}
+
{% block title %}Opt-in{% endblock %}
{% block heading %}Opt-in{% endblock %}
{% if error and admins %}
<p>
- If you are having trouble opting in, please email
-{% for admin in admins %}
-{% if admins|length > 1 and forloop.last %} or {% endif %}
-{{ admin.0 }} <<a href="mailto:{{ admin.1 }}">{{ admin.1 }}</a>>{% if admins|length > 2 and not forloop.last %}, {% endif %}
-{% endfor %}
+ If you are having trouble opting in, please email {% site_admins %}.
</p>
{% endif %}
{% endif %}
{% extends "base.html" %}
+{% load admins %}
+
{% block title %}Opt-out{% endblock %}
{% block heading %}Opt-out{% endblock %}
{% if error and admins %}
<p>
- If you are having trouble opting out, please email
-{% for admin in admins %}
-{% if admins|length > 1 and forloop.last %} or {% endif %}
-{{ admin.0 }} <<a href="mailto:{{ admin.1 }}">{{ admin.1 }}</a>>{% if admins|length > 2 and not forloop.last %}, {% endif %}
-{% endfor %}
+ If you are having trouble opting out, please email {% site_admins %}.
</p>
{% endif %}
{% endif %}
--- /dev/null
+# Patchwork - automated patch tracking system
+# Copyright (C) 2020 Stephen Finucane <stephen@that.guru>
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+from django.conf import settings
+from django import template
+from django.utils.safestring import mark_safe
+
+
+register = template.Library()
+
+
+@register.simple_tag()
+def site_admins():
+ admins = [
+ f'{admin[0]} <<a href="mailto:{admin[1]}">{admin[1]}</a>>'
+ for admin in settings.ADMINS
+ ]
+
+ if not admins:
+ return ''
+
+ if len(admins) == 1:
+ return mark_safe(admins[0])
+
+ return mark_safe(', '.join(admins[:-2]) + admins[-2] + ' or ' + admins[-1])