Skip to content

Commit 3835532

Browse files
committed
Insert iconic link to review statistics from the team pages
- Legacy-Id: 12215
1 parent 2548153 commit 3835532

5 files changed

Lines changed: 26 additions & 7 deletions

File tree

ietf/doc/views_review.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def __init__(self, user, doc, *args, **kwargs):
5151

5252
f = self.fields["team"]
5353
f.queryset = active_review_teams()
54-
f.initial = [group.pk for group in f.queryset if can_manage_review_requests_for_team(user, group, allow_non_team_personnel=False)]
54+
f.initial = [group.pk for group in f.queryset if can_manage_review_requests_for_team(user, group, allow_personnel_outside_team=False)]
5555

5656
self.fields['type'].queryset = self.fields['type'].queryset.filter(used=True, typeusedinreviewteam__team__in=self.fields["team"].queryset).distinct()
5757
self.fields['type'].widget = forms.RadioSelect(choices=[t for t in self.fields['type'].choices if t[0]])

ietf/group/views_review.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@
99
from django.template.loader import render_to_string
1010

1111
from ietf.review.models import ReviewRequest, ReviewerSettings, UnavailablePeriod
12-
from ietf.review.utils import (can_manage_review_requests_for_team, close_review_request_states,
12+
from ietf.review.utils import (can_manage_review_requests_for_team,
13+
can_access_review_stats_for_team,
14+
close_review_request_states,
1315
extract_revision_ordered_review_requests_for_documents_and_replaced,
1416
assign_review_request_to_reviewer,
1517
close_review_request,
@@ -85,7 +87,8 @@ def review_requests(request, acronym, group_type=None):
8587
"closed_review_requests": closed_review_requests,
8688
"since_choices": since_choices,
8789
"since": since,
88-
"can_manage_review_requests": can_manage_review_requests_for_team(request.user, group)
90+
"can_manage_review_requests": can_manage_review_requests_for_team(request.user, group),
91+
"can_access_stats": can_access_review_stats_for_team(request.user, group),
8992
}))
9093

9194
def reviewer_overview(request, acronym, group_type=None):
@@ -142,6 +145,7 @@ def reviewer_overview(request, acronym, group_type=None):
142145
return render(request, 'group/reviewer_overview.html',
143146
construct_group_menu_context(request, group, "reviewers", group_type, {
144147
"reviewers": reviewers,
148+
"can_access_stats": can_access_review_stats_for_team(request.user, group)
145149
}))
146150

147151
class ManageReviewRequestForm(forms.Form):
@@ -247,10 +251,10 @@ def manage_review_requests(request, acronym, group_type=None):
247251
current_reqs = set(review_requests_dict.iterkeys())
248252

249253
closed_reqs = posted_reqs - current_reqs
250-
newly_closed += len(closed_reqs)
254+
newly_closed = len(closed_reqs)
251255

252256
opened_reqs = current_reqs - posted_reqs
253-
newly_opened += len(opened_reqs)
257+
newly_opened = len(opened_reqs)
254258
for r in opened_reqs:
255259
review_requests_dict[r].form.add_error(None, "New request.")
256260

ietf/review/utils.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,19 @@ def can_request_review_of_doc(user, doc):
3030
return (is_authorized_in_doc_stream(user, doc)
3131
or Role.objects.filter(person__user=user, name="secr", group__in=active_review_teams).exists())
3232

33-
def can_manage_review_requests_for_team(user, team, allow_non_team_personnel=True):
33+
def can_manage_review_requests_for_team(user, team, allow_personnel_outside_team=True):
3434
if not user.is_authenticated():
3535
return False
3636

3737
return (Role.objects.filter(name="secr", person__user=user, group=team).exists()
38-
or (allow_non_team_personnel and has_role(user, "Secretariat")))
38+
or (allow_personnel_outside_team and has_role(user, "Secretariat")))
39+
40+
def can_access_review_stats_for_team(user, team):
41+
if not user.is_authenticated():
42+
return False
43+
44+
return (Role.objects.filter(name__in=("secr", "reviewer"), person__user=user, group=team).exists()
45+
or has_role(user, ["Secretariat", "Area Director"]))
3946

4047
def review_requests_to_list_for_docs(docs):
4148
request_qs = ReviewRequest.objects.filter(

ietf/templates/group/review_requests.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@
1313
{% block group_content %}
1414
{% origin %}
1515

16+
{% if can_access_stats %}
17+
<h1 class="pull-right"><a href="{% url "ietf.stats.views.review_stats" %}" class="icon-link">&nbsp;<span class="small fa fa-bar-chart">&nbsp;</span></a></h1>
18+
{% endif %}
19+
1620
<h2>Open review requests</h2>
1721

1822
{% if open_review_requests %}

ietf/templates/group/reviewer_overview.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@
99
{% block group_content %}
1010
{% origin %}
1111

12+
{% if can_access_stats %}
13+
<h1 class="pull-right"><a href="{% url "ietf.stats.views.review_stats" stats_type="completion" acronym=group.acronym %}" class="icon-link">&nbsp;<span class="small fa fa-bar-chart">&nbsp;</span></a></h1>
14+
{% endif %}
15+
1216
<h2>Reviewers</h2>
1317

1418
<p>Status of the reviewers in {{ group.acronym }}, ordered by their

0 commit comments

Comments
 (0)