diff --git a/ietf/group/templatetags/group_filters.py b/ietf/group/templatetags/group_filters.py index 6dedb3911..d016b8378 100644 --- a/ietf/group/templatetags/group_filters.py +++ b/ietf/group/templatetags/group_filters.py @@ -1,5 +1,7 @@ from django import template +from ietf.group.models import Group + register = template.Library() @register.filter @@ -10,3 +12,16 @@ def has_sessions(group,num): def active_roles(queryset): return queryset.filter(group__state_id__in=['active', 'bof']).exclude(group__acronym='secretariat') +@register.filter +def active_nomcoms(user): + if not (user and hasattr(user, "is_authenticated") and user.is_authenticated): + return [] + + groups = [] + + groups.extend(Group.objects.filter( + role__person__user=user, + type_id='nomcom', + state__slug='active').distinct().select_related("type")) + + return groups diff --git a/ietf/templates/base/menu.html b/ietf/templates/base/menu.html index 5cb4a9bf8..ed86c2acf 100644 --- a/ietf/templates/base/menu.html +++ b/ietf/templates/base/menu.html @@ -1,5 +1,5 @@ {# Copyright The IETF Trust 2015, All Rights Reserved #}{% load origin %}{% origin %} -{% load ietf_filters managed_groups wg_menu streams_menu active_groups_menu %} +{% load ietf_filters managed_groups wg_menu streams_menu active_groups_menu group_filters %} {% if flavor != "top" %} {% include "base/menu_user.html" %} @@ -52,6 +52,11 @@ <li><a rel="nofollow" href="/accounts/login/?next={{ request.get_full_path|urlencode }}">Sign in to track docs</a></li> {% endif %} + {% if user|has_role:"Area Director,Secretariat" %} + {% if flavor == "top" %}<li class="divider hidden-xs"></li>{% endif %} + <li><a href="{% url 'ietf.doc.views_status_change.rfc_status_changes' %}">RFC status changes</a></li> + {% endif %} + {% if user|has_role:"WG Chair,RG Chair" %} {% if flavor == "top" %}<li class="divider hidden-xs"></li>{% endif %} <li {%if flavor == "top" %}class="dropdown-header hidden-xs"{% else %}class="nav-header"{% endif %}>WG chair</li> @@ -73,10 +78,15 @@ {% endfor %} {% endif %} - {% if user|has_role:"Area Director,Secretariat" %} + {% if user|active_nomcoms %} {% if flavor == "top" %}<li class="divider hidden-xs"></li>{% endif %} - <li><a href="{% url 'ietf.doc.views_status_change.rfc_status_changes' %}">RFC status changes</a></li> + <li {%if flavor == "top" %}class="dropdown-header hidden-xs"{% else %}class="nav-header"{% endif %}>Nomcoms</li> + {% for g in user|active_nomcoms %} + <li><a href="{% url "ietf.nomcom.views.private_index" g.nomcom_set.first.year %}">{{ g.acronym|capfirst }}</a></li> + {% endfor %} {% endif %} + + {% if flavor == "top" %}<li class="divider hidden-xs"></li>{% endif %} <li {%if flavor == "top" %}class="dropdown-header hidden-xs"{% else %}class="nav-header"{% endif %}>RFC streams</li> <li><a href="{% url "ietf.group.views.stream_documents" acronym="iab" %}">IAB</a></li>