@@ -24,27 +24,42 @@ def __init__(self):
2424 self .base_url = "https://api.resend.com/emails"
2525
2626 def _get_events_added_today (self ):
27- """Fetch events that were added to the database today"""
28- today = date .today ()
27+ """Fetch events that were added to the database since yesterday at midnight"""
28+ from datetime import timedelta
29+ from django .utils import timezone
2930
31+ # Get yesterday at midnight (12:00 AM)
32+ yesterday_midnight = timezone .now ().replace (
33+ hour = 0 , minute = 0 , second = 0 , microsecond = 0
34+ ) - timedelta (days = 1 )
35+
36+ # Get events added since yesterday midnight, prefetch their dates
3037 events = (
31- Events .objects .filter (added_at__date = today )
32- .select_related ( )
33- .order_by ( "dtstart_utc" , "dtend_utc" )
38+ Events .objects .filter (added_at__gte = yesterday_midnight )
39+ .prefetch_related ( "event_dates" )
40+ .distinct ( )
3441 )
3542
3643 events_data = []
3744 for event in events :
38- # Format the event data for email template
39- event_date = event .dtstart_utc .strftime ("%B %d, %Y" )
45+ # Get the earliest event date for this event
46+ event_date_obj = event .event_dates .order_by ("dtstart_utc" ).first ()
47+
48+ if event_date_obj :
49+ # Format the event data for email template
50+ event_date = event_date_obj .dtstart_utc .strftime ("%B %d, %Y" )
4051
41- # Format time range
42- start_time = event .dtstart_utc .strftime ("%I:%M %p" ).lstrip ("0" )
43- if event .dtend_utc :
44- end_time = event .dtend_utc .strftime ("%I:%M %p" ).lstrip ("0" )
45- time_range = f"{ start_time } - { end_time } "
52+ # Format time range
53+ start_time = event_date_obj .dtstart_utc .strftime ("%I:%M %p" ).lstrip ("0" )
54+ if event_date_obj .dtend_utc :
55+ end_time = event_date_obj .dtend_utc .strftime ("%I:%M %p" ).lstrip ("0" )
56+ time_range = f"{ start_time } - { end_time } "
57+ else :
58+ time_range = f"Starting at { start_time } "
4659 else :
47- time_range = f"Starting at { start_time } "
60+ # If no event dates, use placeholder values
61+ event_date = "Date TBD"
62+ time_range = "Time TBD"
4863
4964 club_name = (
5065 event .ig_handle
@@ -53,14 +68,15 @@ def _get_events_added_today(self):
5368 or event .tiktok_handle
5469 or event .fb_handle
5570 or event .school
71+ or "Unknown Club"
5672 )
5773
5874 events_data .append (
5975 {
60- "name" : event .title ,
76+ "name" : event .title or "Untitled Event" ,
6177 "date" : event_date ,
6278 "time" : time_range ,
63- "location" : event .location ,
79+ "location" : event .location or "Location TBD" ,
6480 "description" : event .description or "No description available." ,
6581 "club" : club_name ,
6682 "image_url" : event .source_image_url ,
0 commit comments