Insert iconic link to review statistics from the team pages

- Legacy-Id: 12215
This commit is contained in:
Ole Laursen 2016-10-26 13:35:32 +00:00
parent 2548153894
commit 3835532d71
5 changed files with 26 additions and 7 deletions

View file

@ -51,7 +51,7 @@ class RequestReviewForm(forms.ModelForm):
f = self.fields["team"]
f.queryset = active_review_teams()
f.initial = [group.pk for group in f.queryset if can_manage_review_requests_for_team(user, group, allow_non_team_personnel=False)]
f.initial = [group.pk for group in f.queryset if can_manage_review_requests_for_team(user, group, allow_personnel_outside_team=False)]
self.fields['type'].queryset = self.fields['type'].queryset.filter(used=True, typeusedinreviewteam__team__in=self.fields["team"].queryset).distinct()
self.fields['type'].widget = forms.RadioSelect(choices=[t for t in self.fields['type'].choices if t[0]])

View file

@ -9,7 +9,9 @@ from django import forms
from django.template.loader import render_to_string
from ietf.review.models import ReviewRequest, ReviewerSettings, UnavailablePeriod
from ietf.review.utils import (can_manage_review_requests_for_team, close_review_request_states,
from ietf.review.utils import (can_manage_review_requests_for_team,
can_access_review_stats_for_team,
close_review_request_states,
extract_revision_ordered_review_requests_for_documents_and_replaced,
assign_review_request_to_reviewer,
close_review_request,
@ -85,7 +87,8 @@ def review_requests(request, acronym, group_type=None):
"closed_review_requests": closed_review_requests,
"since_choices": since_choices,
"since": since,
"can_manage_review_requests": can_manage_review_requests_for_team(request.user, group)
"can_manage_review_requests": can_manage_review_requests_for_team(request.user, group),
"can_access_stats": can_access_review_stats_for_team(request.user, group),
}))
def reviewer_overview(request, acronym, group_type=None):
@ -142,6 +145,7 @@ def reviewer_overview(request, acronym, group_type=None):
return render(request, 'group/reviewer_overview.html',
construct_group_menu_context(request, group, "reviewers", group_type, {
"reviewers": reviewers,
"can_access_stats": can_access_review_stats_for_team(request.user, group)
}))
class ManageReviewRequestForm(forms.Form):
@ -247,10 +251,10 @@ def manage_review_requests(request, acronym, group_type=None):
current_reqs = set(review_requests_dict.iterkeys())
closed_reqs = posted_reqs - current_reqs
newly_closed += len(closed_reqs)
newly_closed = len(closed_reqs)
opened_reqs = current_reqs - posted_reqs
newly_opened += len(opened_reqs)
newly_opened = len(opened_reqs)
for r in opened_reqs:
review_requests_dict[r].form.add_error(None, "New request.")

View file

@ -30,12 +30,19 @@ def can_request_review_of_doc(user, doc):
return (is_authorized_in_doc_stream(user, doc)
or Role.objects.filter(person__user=user, name="secr", group__in=active_review_teams).exists())
def can_manage_review_requests_for_team(user, team, allow_non_team_personnel=True):
def can_manage_review_requests_for_team(user, team, allow_personnel_outside_team=True):
if not user.is_authenticated():
return False
return (Role.objects.filter(name="secr", person__user=user, group=team).exists()
or (allow_non_team_personnel and has_role(user, "Secretariat")))
or (allow_personnel_outside_team and has_role(user, "Secretariat")))
def can_access_review_stats_for_team(user, team):
if not user.is_authenticated():
return False
return (Role.objects.filter(name__in=("secr", "reviewer"), person__user=user, group=team).exists()
or has_role(user, ["Secretariat", "Area Director"]))
def review_requests_to_list_for_docs(docs):
request_qs = ReviewRequest.objects.filter(

View file

@ -13,6 +13,10 @@
{% block group_content %}
{% origin %}
{% if can_access_stats %}
<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>
{% endif %}
<h2>Open review requests</h2>
{% if open_review_requests %}

View file

@ -9,6 +9,10 @@
{% block group_content %}
{% origin %}
{% if can_access_stats %}
<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>
{% endif %}
<h2>Reviewers</h2>
<p>Status of the reviewers in {{ group.acronym }}, ordered by their