From 8b6d8c9f4485f6d2d4052217db22f2ce829de4c6 Mon Sep 17 00:00:00 2001 From: Henrik Levkowetz <henrik@levkowetz.com> Date: Sat, 9 Jul 2016 16:59:50 +0000 Subject: [PATCH] Replaced the hardcoded 'Area Director' approval role with a group-dependent list of approval roles. Fixes issue #1980. - Legacy-Id: 11575 --- ietf/doc/templatetags/ietf_filters.py | 11 +++++++++++ ietf/group/models.py | 3 +++ ietf/templates/meeting/interim_approval_request.txt | 3 ++- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/ietf/doc/templatetags/ietf_filters.py b/ietf/doc/templatetags/ietf_filters.py index 7bb4821c6..ccb8b6abb 100644 --- a/ietf/doc/templatetags/ietf_filters.py +++ b/ietf/doc/templatetags/ietf_filters.py @@ -620,3 +620,14 @@ def format_timedelta(timedelta): @register.filter() def nbsp(value): return mark_safe(" ".join(value.split(' '))) + +@register.filter() +def comma_separated_list(seq, end_word="and"): + if len(seq) < 2: + return u"".join(seq) + else: + return u", ".join(seq[:-1]) + u" %s %s"%(end_word, seq[-1]) + +@register.filter() +def role_names(roles): + return list(set([ r.name.name for r in roles ])) diff --git a/ietf/group/models.py b/ietf/group/models.py index 814085341..4c90993c7 100644 --- a/ietf/group/models.py +++ b/ietf/group/models.py @@ -53,6 +53,9 @@ class GroupInfo(models.Model): kwargs["group_type"] = self.type_id return urlreverse(self.features.about_page, kwargs=kwargs) + def interim_approval_roles(self): + return list(set([ role for role in self.parent.role_set.filter(name__in=['ad', 'chair']) ])) + class Meta: abstract = True diff --git a/ietf/templates/meeting/interim_approval_request.txt b/ietf/templates/meeting/interim_approval_request.txt index 1d895efe8..5a7dae034 100644 --- a/ietf/templates/meeting/interim_approval_request.txt +++ b/ietf/templates/meeting/interim_approval_request.txt @@ -1,7 +1,8 @@ {% load ams_filters %} A new interim meeting {% if is_series %}series {% endif %}request has just been submitted by {{ requester }}. -This request requires approval by the Area Director. +This request requires approval by the {{ group.interim_approval_roles|role_names|comma_separated_list:"or" }} + The meeting{{ meetings|pluralize }} can be approved here: {% for url in approval_urls %}{{ url }} {% endfor %}