* Update vnu.jar * Fix py2 -> py3 issue * Run pyupgrade * test: Add default-jdk to images * test: Add option to also validate HTML with vnu.jar Since it's already installed in bin. Don't do this by default, since it increases the time needed for tests by ~50%. * fix: Stop the urlizer from urlizing in linkified mailto: text * More HTML fixes * More HTML validation fixes * And more HTML fixes * Fix floating badge * Ignore unicode errors * Only URLize docs that are existing * Final fixes * Don't URLize everything during test-crawl * Feed HTML into vnu using python rather than Java to speed things up * Allow test-crawl to start vnu on a different port * Increase retry count to vnu. Restore batch size to 30. * More HTML validation fixes * Use urllib3 to make requests to vnu, since overriding requests_mock is tricky * Undo commit of unmodified file * Also urlize ftp links * Fix matching of file name * More HTML fixes * Add `is_valid_url` filter * weekday -> data-weekday * urlencode URLs * Add and use vnu_fmt_message. Bump vnu max buffer. * Simplify doc_exists * Don't add tab link to mail archive if the URL is invalid * Run urlize_ietf_docs before linkify Reduces the possibility of generating incorrect HTML * Undo superfluous change * Runner fixes * Consolidate vnu message filtering into vnu_filter_message * Correctly handle multiple persons with same name * Minimze diff * Fix HTML nits * Print source snippet in vnu_fmt_message * Only escape if there is something to escape * Fix snippet * Skip crufty old IPR declarations * Only include modal when needed. Add handles. * Fix wordwrap+linkification * Update ietf/doc/templatetags/ietf_filters.py * Update ietf/doc/templatetags/tests_ietf_filters.py * Don't right-align second column
256 lines
12 KiB
HTML
256 lines
12 KiB
HTML
{% extends "group/group_base.html" %}
|
|
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
|
{% load origin %}
|
|
{% origin %}
|
|
{% load ietf_filters static person_filters %}
|
|
{% block group_subtitle %}Review requests{% endblock %}
|
|
{% block pagehead %}
|
|
<link rel="stylesheet" href="{% static "ietf/css/list.css" %}">
|
|
{% endblock %}
|
|
{% block group_content %}
|
|
{% origin %}
|
|
{% if can_access_stats %}
|
|
<div class="float-end">
|
|
<a href="{% url "ietf.stats.views.review_stats" %}" class="icon-link">
|
|
<i class="bi bi-bar-chart-line"></i>
|
|
</a>
|
|
</div>
|
|
{% endif %}
|
|
<h2 class="mt-5" id="unassigned-and-open-review-requests">Unassigned and open review requests and assignments</h2>
|
|
<table class="table table-sm table-striped tablesorter">
|
|
<thead>
|
|
<tr>
|
|
<th scope="col" data-sort="request">Request</th>
|
|
<th scope="col" data-sort="type">Type</th>
|
|
<th scope="col" data-sort="req-date">Requested</th>
|
|
<th scope="col" data-sort="deadline-date">Deadline</th>
|
|
<th scope="col" data-sort="state">Document state</th>
|
|
<th scope="col" data-sort="telechat-date">IESG Telechat</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr class="table-info" id="unassigned-review-requests">
|
|
<th scope="col" colspan="6">Unassigned review requests</th>
|
|
</tr>
|
|
</tbody>
|
|
<tbody>
|
|
{% for r in unassigned_review_requests %}
|
|
<tr>
|
|
<td>
|
|
{% if r.pk != None %}
|
|
<a href="{% url "ietf.doc.views_review.review_request" name=r.doc.name request_id=r.pk %}">
|
|
{% endif %}
|
|
{{ r.doc.name }}-{% if r.requested_rev %}{{ r.requested_rev }}{% else %}{{ r.doc.rev }}{% endif %}
|
|
{% if r.pk != None %}</a>{% endif %}
|
|
</td>
|
|
<td>{{ r.type.name }}</td>
|
|
<td>
|
|
{% if r.pk %}
|
|
{{ r.time|date:"Y-m-d" }} by {% person_link r.requested_by %}
|
|
{% else %}
|
|
<span class="badge bg-info">Auto-suggested</span>
|
|
{% endif %}
|
|
</td>
|
|
<td>
|
|
{{ r.deadline|date:"Y-m-d" }}
|
|
{% if r.due %}
|
|
<span class="badge bg-warning"
|
|
title="{{ r.due }} day{{ r.due|pluralize }} past deadline">{{ r.due }} day{{ r.due|pluralize }}</span>
|
|
{% endif %}
|
|
</td>
|
|
<td>{{ r.doc.friendly_state }}</td>
|
|
<td>
|
|
{% if r.doc.telechat_date %}{{ r.doc.telechat_date }}{% endif %}
|
|
</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
<table class="table table-sm table-striped tablesorter">
|
|
<thead>
|
|
<tr>
|
|
<th scope="col" data-sort="request">Request</th>
|
|
<th scope="col" data-sort="type">Type</th>
|
|
<th scope="col" data-sort="req-date">Requested</th>
|
|
<th scope="col" data-sort="deadline-date">Deadline</th>
|
|
<th scope="col" data-sort="reviewer">Reviewer</th>
|
|
<th scope="col" data-sort="state">Document state</th>
|
|
<th scope="col" data-sort="telechat-date">IESG Telechat</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr class="table-info" id="open_review_assignments">
|
|
<th scope="col" colspan="7">Open review requests</th>
|
|
</tr>
|
|
</tbody>
|
|
<tbody>
|
|
{% for a in open_review_assignments %}
|
|
<tr>
|
|
<td>
|
|
<a href="{% url "ietf.doc.views_review.review_request" name=a.review_request.doc.name request_id=a.review_request.pk %}">
|
|
{{ a.review_request.doc.name }}-{% if a.review_request.requested_rev %}{{ a.review_request.requested_rev }}{% else %}{{ a.review_request.doc.rev }}{% endif %}
|
|
</a>
|
|
</td>
|
|
<td>{{ a.review_request.type.name }}</td>
|
|
<td>{{ a.assigned_on|date:"Y-m-d" }}</td>
|
|
<td>
|
|
{{ a.review_request.deadline|date:"Y-m-d" }}
|
|
{% if a.due %}
|
|
<span class="badge bg-warning"
|
|
title="{{ a.due }} day{{ a.due|pluralize }} past deadline">{{ a.due }} day{{ a.due|pluralize }}</span>
|
|
{% endif %}
|
|
</td>
|
|
<td>
|
|
{% person_link a.reviewer.person %}
|
|
{% if a.state_id == "accepted" %}<span class="badge bg-success">Accepted</span>{% endif %}
|
|
{% if a.reviewer_unavailable %}<span class="badge bg-danger">Unavailable</span>{% endif %}
|
|
</td>
|
|
<td>{{ a.review_request.doc.friendly_state }}</td>
|
|
<td>
|
|
{% if a.review_request.doc.telechat_date %}{{ a.review_request.doc.telechat_date }}{% endif %}
|
|
</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
<h2 class="mt-5" id="closed-review-requests">Closed review requests and assignments</h2>
|
|
<form class="closed-review-filter" action="#closed-review-requests">
|
|
Past:
|
|
<div class="btn-group btn-group-sm" role="group">
|
|
{% for key, label in since_choices %}
|
|
<button class="btn btn-outline-primary {% if since == key %}active{% endif %}"
|
|
{% if key %}name="since" value="{{ key }}"{% endif %}
|
|
type="submit">
|
|
{{ label }}
|
|
</button>
|
|
{% endfor %}
|
|
</div>
|
|
</form>
|
|
<table class="table table-sm table-striped tablesorter">
|
|
<thead>
|
|
<tr>
|
|
<th scope="col" data-sort="request">Request</th>
|
|
<th scope="col" data-sort="type">
|
|
Type
|
|
</th>
|
|
<th scope="col" data-sort="req-date">
|
|
Requested
|
|
</th>
|
|
<th scope="col" data-sort="deadline-date">
|
|
Deadline
|
|
</th>
|
|
<th scope="col" data-sort="closed-date">
|
|
Closed
|
|
</th>
|
|
<th scope="col" data-sort="state">
|
|
State
|
|
</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr class="table-info">
|
|
<th scope="col" colspan="6">
|
|
Closed review requests
|
|
</th>
|
|
</tr>
|
|
</tbody>
|
|
<tbody>
|
|
{% for r in closed_review_requests %}
|
|
<tr>
|
|
<td>
|
|
<a href="{% url "ietf.doc.views_review.review_request" name=r.doc.name request_id=r.pk %}">
|
|
{{ r.doc.name }}{% if r.requested_rev %}-{{ r.requested_rev }}{% endif %}
|
|
</a>
|
|
</td>
|
|
<td>
|
|
{{ r.type }}
|
|
</td>
|
|
<td>
|
|
{{ r.time|date:"Y-m-d" }} by {% person_link r.requested_by %}
|
|
</td>
|
|
<td>
|
|
{{ r.deadline|date:"Y-m-d" }}
|
|
</td>
|
|
<td>
|
|
{{ r.request_closed_time|date:"Y-m-d" }}
|
|
</td>
|
|
<td>
|
|
{{ r.state.name }}
|
|
</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
<table class="table table-sm table-striped tablesorter">
|
|
<thead>
|
|
<tr>
|
|
<th scope="col" data-sort="request">Request</th>
|
|
<th scope="col" data-sort="type">
|
|
Type
|
|
</th>
|
|
<th scope="col" data-sort="assgn-date">
|
|
Assigned
|
|
</th>
|
|
<th scope="col" data-sort="deadline-date">
|
|
Deadline
|
|
</th>
|
|
<th scope="col" data-sort="closed-date">
|
|
Closed
|
|
</th>
|
|
<th scope="col" data-sort="reviewer">
|
|
Reviewer
|
|
</th>
|
|
<th scope="col" data-sort="state">
|
|
State
|
|
</th>
|
|
<th scope="col" data-sort="result">
|
|
Result
|
|
</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr class="table-info">
|
|
<th scope="col" colspan="8">
|
|
Closed review assignments
|
|
</th>
|
|
</tr>
|
|
</tbody>
|
|
<tbody>
|
|
{% for a in closed_review_assignments %}
|
|
<tr>
|
|
<td>
|
|
<a href="{% url "ietf.doc.views_review.review_request" name=a.review_request.doc.name request_id=a.review_request.pk %}">
|
|
{{ a.review_request.doc.name }}{% if a.review_request.requested_rev %}-{{ a.review_request.requested_rev }}{% endif %}
|
|
</a>
|
|
</td>
|
|
<td>
|
|
{{ a.review_request.type }}
|
|
</td>
|
|
<td>
|
|
{{ a.assigned_on|date:"Y-m-d" }}
|
|
</td>
|
|
<td>
|
|
{{ a.review_request.deadline|date:"Y-m-d" }}
|
|
</td>
|
|
<td>
|
|
{{ a.completed_on|date:"Y-m-d" }}
|
|
</td>
|
|
<td>
|
|
{% person_link a.reviewer.person %}
|
|
</td>
|
|
<td>
|
|
{{ a.state }}
|
|
</td>
|
|
<td>
|
|
{% if a.result %}{{ a.result }}{% endif %}
|
|
</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
{% endblock %}
|
|
{% block js %}
|
|
<script src="{% static "ietf/js/list.js" %}">
|
|
</script>
|
|
{% endblock %}
|