fix: Compute 8989 eligibility using actual attendance data. (#4236)

This commit is contained in:
Robert Sparks 2022-07-21 12:58:32 -05:00 committed by GitHub
parent e465f1f0f0
commit fe1f51aede
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 4 deletions

View file

@ -1,4 +1,4 @@
# Copyright The IETF Trust 2016-2020, All Rights Reserved
# Copyright The IETF Trust 2016-2022, All Rights Reserved
# -*- coding: utf-8 -*-
@ -9,7 +9,7 @@ import datetime
from django.core.files.base import ContentFile
from django.db.models import Q
from ietf.meeting.models import (Meeting, Session, SchedulingEvent, Schedule,
from ietf.meeting.models import (Attended, Meeting, Session, SchedulingEvent, Schedule,
TimeSlot, SessionPresentation, FloorPlan, Room, SlideSubmission, Constraint,
MeetingHost, ProceedingsMaterial)
from ietf.name.models import (ConstraintName, SessionStatusName, ProceedingsMaterialTypeName,
@ -297,3 +297,10 @@ class ProceedingsMaterialFactory(factory.django.DjangoModelFactory):
uploaded_filename=factory.LazyAttribute(
lambda doc: f'{_pmf_doc_name(doc)}-{doc.rev}.pdf'
))
class AttendedFactory(factory.django.DjangoModelFactory):
class Meta:
model = Attended
session = factory.SubFactory(SessionFactory)
person = factory.SubFactory(PersonFactory)

View file

@ -27,7 +27,7 @@ from ietf.doc.factories import DocEventFactory, WgDocumentAuthorFactory, \
NewRevisionDocEventFactory, DocumentAuthorFactory
from ietf.group.factories import GroupFactory, GroupHistoryFactory, RoleFactory, RoleHistoryFactory
from ietf.group.models import Group, Role
from ietf.meeting.factories import MeetingFactory
from ietf.meeting.factories import MeetingFactory, AttendedFactory
from ietf.message.models import Message
from ietf.nomcom.test_data import nomcom_test_data, generate_cert, check_comments, \
COMMUNITY_USER, CHAIR_USER, \
@ -2396,6 +2396,7 @@ class rfc8989EligibilityTests(TestCase):
p = PersonFactory()
for m in combo:
MeetingRegistrationFactory(person=p, meeting=m)
AttendedFactory(session__meeting=m, session__type_id='plenary',person=p)
if combo_len<3:
ineligible_people.append(p)
else:
@ -2647,6 +2648,7 @@ class VolunteerDecoratorUnitTests(TestCase):
]]
for m in meetings:
MeetingRegistrationFactory(meeting=m,person=meeting_person)
AttendedFactory(session__meeting=m, session__type_id='plenary', person=meeting_person)
nomcom.volunteer_set.create(person=meeting_person)
office_person = PersonFactory()

View file

@ -536,7 +536,7 @@ def get_8989_eligibility_querysets(date, base_qs):
base_qs = Person.objects.all()
previous_five = previous_five_meetings(date)
three_of_five_qs = three_of_five_eligible(previous_five=previous_five, queryset=base_qs)
three_of_five_qs = new_three_of_five_eligible(previous_five=previous_five, queryset=base_qs)
three_years_ago = datetime.date(date.year-3,date.month,date.day)
officer_qs = base_qs.filter(