Skip to content

Commit fe1f51a

Browse files
authored
fix: Compute 8989 eligibility using actual attendance data. (ietf-tools#4236)
1 parent e465f1f commit fe1f51a

3 files changed

Lines changed: 13 additions & 4 deletions

File tree

ietf/meeting/factories.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright The IETF Trust 2016-2020, All Rights Reserved
1+
# Copyright The IETF Trust 2016-2022, All Rights Reserved
22
# -*- coding: utf-8 -*-
33

44

@@ -9,7 +9,7 @@
99
from django.core.files.base import ContentFile
1010
from django.db.models import Q
1111

12-
from ietf.meeting.models import (Meeting, Session, SchedulingEvent, Schedule,
12+
from ietf.meeting.models import (Attended, Meeting, Session, SchedulingEvent, Schedule,
1313
TimeSlot, SessionPresentation, FloorPlan, Room, SlideSubmission, Constraint,
1414
MeetingHost, ProceedingsMaterial)
1515
from ietf.name.models import (ConstraintName, SessionStatusName, ProceedingsMaterialTypeName,
@@ -297,3 +297,10 @@ class Meta:
297297
uploaded_filename=factory.LazyAttribute(
298298
lambda doc: f'{_pmf_doc_name(doc)}-{doc.rev}.pdf'
299299
))
300+
301+
class AttendedFactory(factory.django.DjangoModelFactory):
302+
class Meta:
303+
model = Attended
304+
305+
session = factory.SubFactory(SessionFactory)
306+
person = factory.SubFactory(PersonFactory)

ietf/nomcom/tests.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
NewRevisionDocEventFactory, DocumentAuthorFactory
2828
from ietf.group.factories import GroupFactory, GroupHistoryFactory, RoleFactory, RoleHistoryFactory
2929
from ietf.group.models import Group, Role
30-
from ietf.meeting.factories import MeetingFactory
30+
from ietf.meeting.factories import MeetingFactory, AttendedFactory
3131
from ietf.message.models import Message
3232
from ietf.nomcom.test_data import nomcom_test_data, generate_cert, check_comments, \
3333
COMMUNITY_USER, CHAIR_USER, \
@@ -2396,6 +2396,7 @@ def test_elig_by_meetings(self):
23962396
p = PersonFactory()
23972397
for m in combo:
23982398
MeetingRegistrationFactory(person=p, meeting=m)
2399+
AttendedFactory(session__meeting=m, session__type_id='plenary',person=p)
23992400
if combo_len<3:
24002401
ineligible_people.append(p)
24012402
else:
@@ -2647,6 +2648,7 @@ def test_decorate_volunteers_with_qualifications(self):
26472648
]]
26482649
for m in meetings:
26492650
MeetingRegistrationFactory(meeting=m,person=meeting_person)
2651+
AttendedFactory(session__meeting=m, session__type_id='plenary', person=meeting_person)
26502652
nomcom.volunteer_set.create(person=meeting_person)
26512653

26522654
office_person = PersonFactory()

ietf/nomcom/utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -536,7 +536,7 @@ def get_8989_eligibility_querysets(date, base_qs):
536536
base_qs = Person.objects.all()
537537

538538
previous_five = previous_five_meetings(date)
539-
three_of_five_qs = three_of_five_eligible(previous_five=previous_five, queryset=base_qs)
539+
three_of_five_qs = new_three_of_five_eligible(previous_five=previous_five, queryset=base_qs)
540540

541541
three_years_ago = datetime.date(date.year-3,date.month,date.day)
542542
officer_qs = base_qs.filter(

0 commit comments

Comments
 (0)