From 41d3bb61b43e981ca673d8576aef649488e44a3c Mon Sep 17 00:00:00 2001
From: Robert Sparks <rjsparks@nostrum.com>
Date: Fri, 23 Dec 2016 21:20:55 +0000
Subject: [PATCH] Added some convenience navigation for review team secretaries
 to the menu. Restructured the menu lightly around Documents and Role-related
 links. Added navigation from a reviewers "My Reviews" page back to the review
 team pages. Fixes #2079. Commit ready for merge.  - Legacy-Id: 12627

---
 ietf/doc/templatetags/managed_groups.py      | 15 +++++++++++++
 ietf/ietfauth/utils.py                       |  2 ++
 ietf/templates/base/menu.html                | 22 +++++++++++++-------
 ietf/templates/ietfauth/review_overview.html |  4 ++--
 4 files changed, 34 insertions(+), 9 deletions(-)

diff --git a/ietf/doc/templatetags/managed_groups.py b/ietf/doc/templatetags/managed_groups.py
index 113bc0262..ba87e43b0 100644
--- a/ietf/doc/templatetags/managed_groups.py
+++ b/ietf/doc/templatetags/managed_groups.py
@@ -24,3 +24,18 @@ def managed_groups(user):
 
     return groups
 
+@register.filter
+def managed_review_groups(user):
+    if not (user and hasattr(user, "is_authenticated") and user.is_authenticated()):
+        return []
+
+    groups = []
+
+    groups.extend(Group.objects.filter(
+        role__name__slug='secr',
+        role__person__user=user,
+        reviewteamsettings__isnull=False,
+        state__slug='active').select_related("type"))
+
+    return groups
+
diff --git a/ietf/ietfauth/utils.py b/ietf/ietfauth/utils.py
index 98749c21d..560cf376e 100644
--- a/ietf/ietfauth/utils.py
+++ b/ietf/ietfauth/utils.py
@@ -70,6 +70,8 @@ def has_role(user, role_names, *args, **kwargs):
             "Liaison Manager": Q(person=person,name="liaiman",group__type="sdo",group__state="active", ),
             "Authorized Individual": Q(person=person,name="auth",group__type="sdo",group__state="active", ),
             "Reviewer": Q(person=person, name="reviewer", group__state="active"),
+            "Review Team Secretary": Q(person=person, name="secr", group__reviewteamsettings__isnull=False,group__state="active", ),
+
             }
 
         filter_expr = Q()
diff --git a/ietf/templates/base/menu.html b/ietf/templates/base/menu.html
index 9edcafbbd..8270cda2f 100644
--- a/ietf/templates/base/menu.html
+++ b/ietf/templates/base/menu.html
@@ -45,14 +45,16 @@
   {% endif %}
   <li><a href="{% url "ietf.submit.views.upload_submission" %}">Draft submission</a></li>
 
-  {% if user|has_role:"WG Chair" %}
+  {% if user and user.is_authenticated %}
+    <li><a href="{% url "ietf.community.views.view_list" user.username %}">My tracked docs</a></li>
+  {% else %}
+    <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:"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>
     <li><a href="{% url "ietf.submit.views.approvals" %}">Approve a draft</a></li>
-  {% endif %}
-
-  {% if user and user.is_authenticated %}
-    <li><a href="{% url "ietf.community.views.view_list" user.username %}">My tracked docs</a></li>
 
     {% for g in user|managed_groups %}
       <li><a href="{% url "group_docs" g.acronym %}">{{ g.acronym }} {{ g.type.slug }} docs</a></li>
@@ -60,8 +62,14 @@
     {% for g in user|managed_groups %}
       <li><a href="{% url "ietf.group.views.meetings" g.acronym %}">{{ g.acronym }} {{ g.type.slug }} meetings</a></li>
     {% endfor %}
-  {% else %}
-    <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:"Review Team Secretary" %}
+    {% if flavor == "top" %}<li class="divider hidden-xs"></li>{% endif %}
+    <li {%if flavor == "top" %}class="dropdown-header hidden-xs"{% else %}class="nav-header"{% endif %}>Review Teams</li>
+    {% for g in user|managed_review_groups %}
+      <li><a href="{% url "ietf.group.views_review.review_requests" g.acronym %}">{{ g.acronym }} reviews</a></li>
+    {% endfor %}
   {% endif %}
 
   {% if user|has_role:"Area Director,Secretariat" %}
diff --git a/ietf/templates/ietfauth/review_overview.html b/ietf/templates/ietfauth/review_overview.html
index ead5f6433..bb6e634e5 100644
--- a/ietf/templates/ietfauth/review_overview.html
+++ b/ietf/templates/ietfauth/review_overview.html
@@ -35,7 +35,7 @@
             <td><a {% if r.pk != None %}href="{% url "ietf.doc.views_review.review_request" name=r.doc.name request_id=r.pk %}"{% endif %}>{{ r.doc.name }}</a></td>
             <td>{% if r.requested_rev %}{{ r.requested_rev }}{% else %}Current{% endif %}</td>
             <td>{{r.doc.rev}}</td>
-            <td>{{ r.team.acronym }}</td>
+            <td><a href="{% url 'ietf.group.views_review.review_requests' acronym=r.team.acronym %}">{{ r.team.acronym }}</a></td>
             <td>{{ r.type.name }}</td>
             <td>
               {{ r.deadline|date:"Y-m-d" }}
@@ -70,7 +70,7 @@
           <tr>
             <td><a {% if r.pk != None %}href="{% url "ietf.doc.views_review.review_request" name=r.doc.name request_id=r.pk %}"{% endif %}>{{ r.doc.name }}</a></td>
             <td>{{r.reviewed_rev|default:"See review"}}{% if r.requested_rev %}{% if r.requested_rev != r.reviewed_rev %}({{ r.requested_rev }} requested){% endif %}{% endif %}</td>
-            <td>{{ r.team.acronym }}</td>
+            <td><a href="{% url 'ietf.group.views_review.review_requests' acronym=r.team.acronym %}">{{ r.team.acronym }}</a></td>
             <td>{{ r.type.name }}</td>
             <td>
               {{ r.deadline|date:"Y-m-d" }}