fix: Compute 8989 eligibility using actual attendance data. (#4236)
This commit is contained in:
parent
e465f1f0f0
commit
fe1f51aede
|
@ -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)
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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(
|
||||
|
|
Loading…
Reference in a new issue