From 41ddb37e01c9996a4fb4f90fbe7ed1622eaa4208 Mon Sep 17 00:00:00 2001 From: Robert Sparks Date: Wed, 3 Nov 2021 18:28:47 +0000 Subject: [PATCH] Adjust dots claim based on 112 Plenary feedback - Legacy-Id: 19544 --- ietf/person/tests.py | 29 ++++++++++++++++++++++++++++- ietf/person/utils.py | 8 ++++---- 2 files changed, 32 insertions(+), 5 deletions(-) diff --git a/ietf/person/tests.py b/ietf/person/tests.py index 2f60233940..a61cfe4875 100644 --- a/ietf/person/tests.py +++ b/ietf/person/tests.py @@ -27,7 +27,7 @@ from ietf.person.models import Person, Alias from ietf.person.utils import (merge_persons, determine_merge_order, send_merge_notification, handle_users, get_extra_primary, dedupe_aliases, move_related_objects, merge_nominees, - handle_reviewer_settings, merge_users) + handle_reviewer_settings, merge_users, get_dots) from ietf.review.models import ReviewerSettings from ietf.utils.test_utils import TestCase, login_testing_unauthorized from ietf.utils.mail import outbox, empty_outbox @@ -373,3 +373,30 @@ def test_merge_users(self): self.assertIn(communitylist, target.communitylist_set.all()) self.assertIn(feedback, target.feedback_set.all()) self.assertIn(nomination, target.nomination_set.all()) + + def test_dots(self): + noroles = PersonFactory() + self.assertEqual(get_dots(noroles),[]) + wgchair = RoleFactory(name_id='chair',group__type_id='wg').person + self.assertEqual(get_dots(wgchair),['chair']) + ad = RoleFactory(name_id='ad',group__acronym='iesg').person + self.assertEqual(get_dots(ad),['iesg']) + iabmember = RoleFactory(name_id='member',group__acronym='iab').person + self.assertEqual(get_dots(iabmember),['iab']) + iabchair = RoleFactory(name_id='chair',group__acronym='iab').person + RoleFactory(person=iabchair,group__acronym='iab',name_id='member') + self.assertEqual(set(get_dots(iabchair)),set(['iab','iesg'])) + llcboard = RoleFactory(name_id='member',group__acronym='llc-board').person + self.assertEqual(get_dots(llcboard),['llc']) + ietftrust = RoleFactory(name_id='member',group__acronym='ietf-trust').person + self.assertEqual(get_dots(ietftrust),['trust']) + ncmember = RoleFactory(group__acronym='nomcom2020',group__type_id='nomcom',name_id='member').person + self.assertEqual(get_dots(ncmember),['nomcom']) + ncchair = RoleFactory(group__acronym='nomcom2020',group__type_id='nomcom',name_id='chair').person + self.assertEqual(get_dots(ncchair),['nomcom']) + + + + + + diff --git a/ietf/person/utils.py b/ietf/person/utils.py index a3c632b8cd..54c2f5dbee 100755 --- a/ietf/person/utils.py +++ b/ietf/person/utils.py @@ -11,6 +11,7 @@ from django.contrib import admin from django.core.cache import cache from django.core.exceptions import ObjectDoesNotExist +from django.db.models import Q import debug # pyflakes:ignore @@ -222,12 +223,11 @@ def get_active_irsg(): def get_dots(person): roles = person.role_set.filter(group__state_id__in=('active','bof','proposed')) - chair_group_types = ['wg', 'program', 'rg', 'iabasg'] dots = [] - if roles.filter(name_id='chair',group__type_id__in=chair_group_types).exists(): + if roles.filter(group__type_id='wg',name_id='chair').exists(): dots.append('chair') - if roles.filter(group__acronym='iesg',name_id='ad').exists(): - dots.append('ad') + if roles.filter(Q(group__acronym='iesg',name_id='ad')|Q(group__acronym='iab',name_id='chair')).exists(): + dots.append('iesg') if roles.filter(group__acronym='iab',name_id='member').exists(): dots.append('iab') if roles.filter(group__acronym='irsg').exists():