From 658f7edeef7351f54b76af5097bb1bfa2f44b27c Mon Sep 17 00:00:00 2001 From: Paul Selkirk Date: Thu, 28 Sep 2023 14:53:38 -0400 Subject: [PATCH 1/3] test: Add test for RFC8713 section 4.15 disqualified roles --- ietf/nomcom/tests.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/ietf/nomcom/tests.py b/ietf/nomcom/tests.py index c64ba5b3c..0d4684c92 100644 --- a/ietf/nomcom/tests.py +++ b/ietf/nomcom/tests.py @@ -2419,6 +2419,7 @@ class rfc8713EligibilityTests(TestCase): self.eligible_people = list() self.ineligible_people = list() + # Section 4.14 qualification criteria for combo_len in range(0,6): for combo in combinations(meetings,combo_len): p = PersonFactory() @@ -2429,6 +2430,18 @@ class rfc8713EligibilityTests(TestCase): else: self.eligible_people.append(p) + # Section 4.15 disqualification criteria + def ineligible_person_with_role(**kwargs): + p = RoleFactory(**kwargs).person + for m in meetings: + MeetingRegistrationFactory(person=p, meeting=m, attended=True) + self.ineligible_people.append(p) + for group in ['isocbot', 'ietf-trust', 'llc-board', 'iab']: + for role in ['member', 'chair']: + ineligible_person_with_role(group__acronym=group, name_id=role) + ineligible_person_with_role(group__type_id='area', group__state_id='active',name_id='ad') + ineligible_person_with_role(group=self.nomcom.group, name_id='chair') + # No-one is eligible for the other_nomcom self.other_nomcom = NomComFactory(group__acronym='nomcom2018',first_call_for_volunteers=datetime.date(2018,5,1)) From cbd49a737f6dea33592453c0123561eb91d5f771 Mon Sep 17 00:00:00 2001 From: Paul Selkirk Date: Thu, 28 Sep 2023 14:55:06 -0400 Subject: [PATCH 2/3] fix: Disqualify the nomcom chair from volunteering for the nomcom --- ietf/nomcom/utils.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ietf/nomcom/utils.py b/ietf/nomcom/utils.py index e009999e6..fea838a97 100644 --- a/ietf/nomcom/utils.py +++ b/ietf/nomcom/utils.py @@ -1,4 +1,4 @@ -# Copyright The IETF Trust 2012-2022, All Rights Reserved +# Copyright The IETF Trust 2012-2023, All Rights Reserved # -*- coding: utf-8 -*- @@ -68,6 +68,7 @@ DEFAULT_NOMCOM_TEMPLATES = [HOME_TEMPLATE, # See RFC8713 section 4.15 DISQUALIFYING_ROLE_QUERY_EXPRESSION = ( Q(group__acronym__in=['isocbot', 'ietf-trust', 'llc-board', 'iab'], name_id__in=['member', 'chair']) | Q(group__type_id='area', group__state='active',name_id='ad') + | Q(group__type_id='nomcom', group__state='active', name_id='chair') ) From 40dc24e44b81328aa519a97c4ba694fc1b655204 Mon Sep 17 00:00:00 2001 From: Robert Sparks Date: Fri, 29 Sep 2023 07:52:32 -0500 Subject: [PATCH 3/3] chore: tweak comments --- ietf/nomcom/utils.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ietf/nomcom/utils.py b/ietf/nomcom/utils.py index fea838a97..6a7e3f40d 100644 --- a/ietf/nomcom/utils.py +++ b/ietf/nomcom/utils.py @@ -66,6 +66,8 @@ DEFAULT_NOMCOM_TEMPLATES = [HOME_TEMPLATE, ] # See RFC8713 section 4.15 +# This potentially over-disqualifies past nomcom chairs if some +# nomcom 2+ nomcoms ago is still in the active state DISQUALIFYING_ROLE_QUERY_EXPRESSION = ( Q(group__acronym__in=['isocbot', 'ietf-trust', 'llc-board', 'iab'], name_id__in=['member', 'chair']) | Q(group__type_id='area', group__state='active',name_id='ad') | Q(group__type_id='nomcom', group__state='active', name_id='chair')