diff --git a/ietf/doc/models.py b/ietf/doc/models.py
index 6b850e98a..5e199c695 100644
--- a/ietf/doc/models.py
+++ b/ietf/doc/models.py
@@ -509,6 +509,10 @@ class Document(DocumentInfo):
e = self.latest_event(TelechatDocEvent, type="scheduled_for_telechat")
return e.telechat_date if e and e.telechat_date and e.telechat_date >= datetime.date.today() else None
+ def past_telechat_date(self):
+ e = self.latest_event(TelechatDocEvent, type="scheduled_for_telechat")
+ return e.telechat_date if e and e.telechat_date and e.telechat_date < datetime.date.today() else None
+
def area_acronym(self):
g = self.group
if g:
diff --git a/ietf/group/views_review.py b/ietf/group/views_review.py
index 9f757713a..41791cb8f 100644
--- a/ietf/group/views_review.py
+++ b/ietf/group/views_review.py
@@ -26,7 +26,9 @@ from ietf.review.utils import (can_manage_review_requests_for_team,
reviewer_rotation_list,
latest_review_requests_for_reviewers,
augment_review_requests_with_events,
- get_default_filter_re,)
+ get_default_filter_re,
+ days_needed_to_fulfill_min_interval_for_reviewers,
+ )
from ietf.doc.models import LastCallDocEvent
from ietf.group.models import Role
from ietf.group.utils import get_group_or_404, construct_group_menu_context
@@ -142,6 +144,8 @@ def reviewer_overview(request, acronym, group_type=None):
req_data_for_reviewers = latest_review_requests_for_reviewers(group)
review_state_by_slug = { n.slug: n for n in ReviewRequestStateName.objects.all() }
+ days_needed = days_needed_to_fulfill_min_interval_for_reviewers(group)
+
for person in reviewers:
person.settings = reviewer_settings.get(person.pk) or ReviewerSettings(team=group, person=person)
person.settings_url = None
@@ -155,6 +159,8 @@ def reviewer_overview(request, acronym, group_type=None):
person.completely_unavailable = any(p.availability == "unavailable"
and (p.start_date is None or p.start_date <= today) and (p.end_date is None or today <= p.end_date)
for p in person.unavailable_periods)
+ person.busy = person.id in days_needed
+
MAX_CLOSED_REQS = 10
req_data = req_data_for_reviewers.get(person.pk, [])
diff --git a/ietf/static/ietf/css/ietf.css b/ietf/static/ietf/css/ietf.css
index 025bc0168..a58f4cce2 100644
--- a/ietf/static/ietf/css/ietf.css
+++ b/ietf/static/ietf/css/ietf.css
@@ -550,7 +550,15 @@ table.simple-table td:last-child {
}
.reviewer-overview .completely-unavailable {
- opacity: 0.6;
+ background-color: #D8D8D8;
+}
+
+.reviewer-overview .skip-next {
+ background-color: #E4E4E4;
+}
+
+.reviewer-overview .busy {
+ background-color: #F0F0F0;
}
/* === Statistics =========================================================== */
diff --git a/ietf/templates/group/manage_review_requests.html b/ietf/templates/group/manage_review_requests.html
index 3ff06116e..d52c0f6cf 100644
--- a/ietf/templates/group/manage_review_requests.html
+++ b/ietf/templates/group/manage_review_requests.html
@@ -148,6 +148,7 @@
+ {% if r.doc.past_telechat_date %} (was on {{r.doc.past_telechat_date}} telechat) {% endif %}
diff --git a/ietf/templates/group/reviewer_overview.html b/ietf/templates/group/reviewer_overview.html
index a2fd85205..d780f9e43 100644
--- a/ietf/templates/group/reviewer_overview.html
+++ b/ietf/templates/group/reviewer_overview.html
@@ -16,7 +16,13 @@
Status of the reviewers in {{ group.acronym }}, ordered by their
- rotation with the next reviewer in the rotation at the top.Reviewers
Has already been assigned a document within the given interval.
+Will be skipped the next time at the top of rotation.
+Is not available to do reviews at this time.
+{% if person.settings_url %}{% endif %}{{ person }}{% if person.settings_url %}{% endif %} |
|