* test: Test rfc_editor_index_update_task * chore: Add docstring to test * fix: Reuse stats instead of fetching twice * test: Test fetch_meeting_attendance_task * chore: Remove outdated tasks * Revert "chore: Add docstring to test" This reverts commit 0395410d665c0d310248fd151386f013357c5d13. * Revert "test: Test rfc_editor_index_update_task" This reverts commit 4dd9dd131723497db3d2aa76166169fd32c42fdd. * test: Test rfc_editor_index_update_task This time without reformatting the entire file... * chore: Remove accidentally committed fragment * test: Annotate function to satisfy mypy * chore: Remove unused imports
28 lines
956 B
Python
28 lines
956 B
Python
# Copyright The IETF Trust 2024, All Rights Reserved
|
|
#
|
|
# Celery task definitions
|
|
#
|
|
from celery import shared_task
|
|
from django.utils import timezone
|
|
|
|
from ietf.meeting.models import Meeting
|
|
from ietf.stats.utils import fetch_attendance_from_meetings
|
|
from ietf.utils import log
|
|
|
|
|
|
@shared_task
|
|
def fetch_meeting_attendance_task():
|
|
# fetch most recent two meetings
|
|
meetings = Meeting.objects.filter(type="ietf", date__lte=timezone.now()).order_by("-date")[:2]
|
|
try:
|
|
stats = fetch_attendance_from_meetings(meetings)
|
|
except RuntimeError as err:
|
|
log.log(f"Error in fetch_meeting_attendance_task: {err}")
|
|
else:
|
|
for meeting, meeting_stats in zip(meetings, stats):
|
|
log.log(
|
|
"Fetched data for meeting {:>3}: {:4d} processed, {:4d} added, {:4d} in table".format(
|
|
meeting.number, meeting_stats.processed, meeting_stats.added, meeting_stats.total
|
|
)
|
|
)
|