Skip to content

Commit fa684cf

Browse files
committed
Merged in [12541] from rjsparks@nostrum.com:
Provide default filters for reviewer settings. Fixes ietf-tools#2093. - Legacy-Id: 12546 Note: SVN reference [12541] has been migrated to Git commit df86798
1 parent b14e981 commit fa684cf

3 files changed

Lines changed: 18 additions & 6 deletions

File tree

ietf/group/views_review.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@
2525
email_reviewer_availability_change,
2626
reviewer_rotation_list,
2727
latest_review_requests_for_reviewers,
28-
augment_review_requests_with_events)
28+
augment_review_requests_with_events,
29+
get_default_filter_re,)
2930
from ietf.doc.models import LastCallDocEvent
3031
from ietf.group.models import Role
3132
from ietf.group.utils import get_group_or_404, construct_group_menu_context
@@ -488,8 +489,10 @@ def change_reviewer_settings(request, acronym, reviewer_email, group_type=None):
488489
or can_manage_review_requests_for_team(request.user, group)):
489490
return HttpResponseForbidden("You do not have permission to perform this action")
490491

491-
settings = (ReviewerSettings.objects.filter(person=reviewer, team=group).first()
492-
or ReviewerSettings(person=reviewer, team=group))
492+
settings = ReviewerSettings.objects.filter(person=reviewer, team=group).first()
493+
if not settings:
494+
settings = ReviewerSettings(person=reviewer, team=group)
495+
settings.filter_re = get_default_filter_re(reviewer)
493496

494497
back_url = request.GET.get("next")
495498
if not back_url:

ietf/ietfauth/views.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
from ietf.mailinglists.models import Subscribed, Whitelisted
5757
from ietf.person.models import Person, Email, Alias
5858
from ietf.review.models import ReviewRequest, ReviewerSettings, ReviewWish
59-
from ietf.review.utils import unavailable_periods_to_list
59+
from ietf.review.utils import unavailable_periods_to_list, get_default_filter_re
6060
from ietf.utils.mail import send_mail
6161
from ietf.doc.fields import SearchableDocumentField
6262

@@ -433,7 +433,7 @@ def review_overview(request):
433433
roles = { o.group_id: o for o in Role.objects.filter(name="reviewer", person__user=request.user, group__in=teams) }
434434

435435
for t in teams:
436-
t.reviewer_settings = settings.get(t.pk) or ReviewerSettings(team=t)
436+
t.reviewer_settings = settings.get(t.pk) or ReviewerSettings(team=t,filter_re = get_default_filter_re(request.user.person))
437437
t.unavailable_periods = unavailable_periods.get(t.pk, [])
438438
t.role = roles.get(t.pk)
439439

ietf/review/utils.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -694,6 +694,15 @@ def setup_reviewer_field(field, review_req):
694694

695695
field.choices = choices
696696

697+
def get_default_filter_re(person):
698+
if type(person) != Person:
699+
person = Person.objects.get(id=person)
700+
groups_to_avoid = [r.group for r in person.role_set.filter(name='chair',group__type__in=['wg','rg'])]
701+
if not groups_to_avoid:
702+
return '^draft-%s-.*$' % ( person.last_name().lower(), )
703+
else:
704+
return '^draft-(%s|%s)-.*$' % ( person.last_name().lower(), '|'.join(['ietf-%s' % g.acronym for g in groups_to_avoid]))
705+
697706
def make_assignment_choices(email_queryset, review_req):
698707
doc = review_req.doc
699708
team = review_req.team
@@ -711,7 +720,7 @@ def make_assignment_choices(email_queryset, review_req):
711720

712721
for p in possible_person_ids:
713722
if p not in reviewer_settings:
714-
reviewer_settings[p] = ReviewerSettings(team=team)
723+
reviewer_settings[p] = ReviewerSettings(team=team, filter_re = get_default_filter_re(p))
715724

716725
# frequency
717726
days_needed_for_reviewers = days_needed_to_fulfill_min_interval_for_reviewers(team)

0 commit comments

Comments
 (0)