Skip to content

Commit 248d647

Browse files
fix: treat leap day in get_8989_eligibility_querysets()
1 parent 088d953 commit 248d647

1 file changed

Lines changed: 9 additions & 3 deletions

File tree

ietf/nomcom/utils.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -538,14 +538,21 @@ def get_8989_eligibility_querysets(date, base_qs):
538538
previous_five = previous_five_meetings(date)
539539
three_of_five_qs = new_three_of_five_eligible(previous_five=previous_five, queryset=base_qs)
540540

541-
three_years_ago = datetime.date(date.year-3,date.month,date.day)
541+
# If date is Feb 29, neither 3 nor 5 years ago has a Feb 29. Use Feb 28 instead.
542+
if date.month == 2 and date.day == 29:
543+
three_years_ago = datetime.date(date.year - 3, 2, 28)
544+
five_years_ago = datetime.date(date.year - 5, 2, 28)
545+
else:
546+
three_years_ago = datetime.date(date.year - 3, date.month, date.day)
547+
five_years_ago = datetime.date(date.year - 5, date.month, date.day)
548+
542549
officer_qs = base_qs.filter(
543550
# is currently an officer
544551
Q(role__name_id__in=('chair','secr'),
545552
role__group__state_id='active',
546553
role__group__type_id='wg',
547554
role__group__time__lte=date,
548-
)
555+
)
549556
# was an officer since the given date (I think this is wrong - it looks at when roles _start_, not when roles end)
550557
| Q(rolehistory__group__time__gte=three_years_ago,
551558
rolehistory__group__time__lte=date,
@@ -555,7 +562,6 @@ def get_8989_eligibility_querysets(date, base_qs):
555562
)
556563
).distinct()
557564

558-
five_years_ago = datetime.date(date.year-5,date.month,date.day)
559565
rfc_pks = set(DocEvent.objects.filter(type='published_rfc',time__gte=five_years_ago,time__lte=date).values_list('doc__pk',flat=True))
560566
iesgappr_pks = set(DocEvent.objects.filter(type='iesg_approved',time__gte=five_years_ago,time__lte=date).values_list('doc__pk',flat=True))
561567
qualifying_pks = rfc_pks.union(iesgappr_pks.difference(rfc_pks))

0 commit comments

Comments
 (0)