def send_after_event_mail(): from app import current_app as app with app.app_context(): events = Event.query.all() upcoming_events = get_upcoming_events() upcoming_event_links = "<ul>" for upcoming_event in upcoming_events: frontend_url = get_settings()['frontend_url'] upcoming_event_links += "<li><a href='{}/events/{}'>{}</a></li>" \ .format(frontend_url, upcoming_event.id, upcoming_event.name) upcoming_event_links += "</ul>" for event in events: organizers = get_user_event_roles_by_role_name( event.id, 'organizer') speakers = Speaker.query.filter_by(event_id=event.id, deleted_at=None).all() current_time = datetime.datetime.now(pytz.timezone(event.timezone)) time_difference = current_time - event.ends_at time_difference_minutes = (time_difference.days * 24 * 60) + \ (time_difference.seconds / 60) if current_time > event.ends_at and time_difference_minutes < 1440: for speaker in speakers: send_email_after_event(speaker.user.email, event.name, upcoming_event_links) send_notif_after_event(speaker.user, event.name) for organizer in organizers: send_email_after_event(organizer.user.email, event.name, upcoming_event_links) send_notif_after_event(organizer.user, event.name)
def send_after_event_mail(): from app import current_app as app with app.app_context(): events = Event.query.all() upcoming_events = get_upcoming_events() upcoming_event_links = "<ul>" for upcoming_event in upcoming_events: frontend_url = get_settings()['frontend_url'] upcoming_event_links += "<li><a href='{}/events/{}'>{}</a></li>" \ .format(frontend_url, upcoming_event.id, upcoming_event.name) upcoming_event_links += "</ul>" for event in events: organizers = get_user_event_roles_by_role_name(event.id, 'organizer') speakers = get_user_event_roles_by_role_name(event.id, 'speaker') current_time = datetime.datetime.now(pytz.timezone(event.timezone)) time_difference = current_time - event.ends_at time_difference_minutes = (time_difference.days * 24 * 60) + \ (time_difference.seconds / 60) if current_time > event.ends_at and time_difference_minutes < 1440: for speaker in speakers: send_email_after_event(speaker.user.email, event.name, upcoming_event_links) send_notif_after_event(speaker.user, event.name) for organizer in organizers: send_email_after_event(organizer.user.email, event.name, upcoming_event_links) send_notif_after_event(organizer.user.email, event.name)
def send_after_event_mail(): current_time = datetime.datetime.now() events = ( Event.query.filter_by(state='published', deleted_at=None) .filter( Event.ends_at < current_time, current_time - Event.ends_at < datetime.timedelta(days=1), ) .all() ) for event in events: organizers = get_user_event_roles_by_role_name(event.id, 'organizer') speakers = Speaker.query.filter_by(event_id=event.id, deleted_at=None).all() owner = get_user_event_roles_by_role_name(event.id, 'owner').first() unique_emails = set() unique_emails_speakers = set() for speaker in speakers: if not speaker.is_email_overridden: unique_emails_speakers.add(speaker.user.email) for organizer in organizers: unique_emails.add(organizer.user.email) if owner: unique_emails.add(owner.user.email) for email in unique_emails: send_email_after_event(email, event.name) for email in unique_emails_speakers: send_email_after_event_speaker(email, event.name)
def send_after_event_mail(): from app.instance import current_app as app with app.app_context(): events = Event.query.filter_by(state='published', deleted_at=None).all() for event in events: organizers = get_user_event_roles_by_role_name(event.id, 'organizer') speakers = Speaker.query.filter_by(event_id=event.id, deleted_at=None).all() owner = get_user_event_roles_by_role_name(event.id, 'owner').first() current_time = datetime.datetime.now(pytz.timezone(event.timezone)) time_difference = current_time - event.ends_at time_difference_minutes = (time_difference.days * 24 * 60) + ( time_difference.seconds / 60 ) frontend_url = get_settings()['frontend_url'] if current_time > event.ends_at and time_difference_minutes < 1440: unique_emails = set() user_objects = [] for speaker in speakers: if not speaker.is_email_overridden: unique_emails.add(speaker.user.email) user_objects.append(speaker.user) for organizer in organizers: unique_emails.add(organizer.user.email) user_objects.append(organizer.user) if owner: unique_emails.add(owner.user.email) user_objects.append(owner.user) for email in unique_emails: send_email_after_event(email, event.name, frontend_url) # Unique user's dict based on their id. unique_users_dict = make_dict(user_objects, "id") for user in unique_users_dict.values(): send_notif_after_event(user, event.name)
def send_after_event_mail(): current_time = datetime.datetime.now() events = ( Event.query.filter_by(state='published', deleted_at=None) .filter( Event.ends_at < current_time, current_time - Event.ends_at < datetime.timedelta(days=1), ) .all() ) for event in events: organizers = get_user_event_roles_by_role_name(event.id, 'organizer') speakers = Speaker.query.filter_by(event_id=event.id, deleted_at=None).all() owner = get_user_event_roles_by_role_name(event.id, 'owner').first() frontend_url = get_settings()['frontend_url'] unique_emails = set() user_objects = [] for speaker in speakers: if not speaker.is_email_overridden: unique_emails.add(speaker.user.email) user_objects.append(speaker.user) for organizer in organizers: unique_emails.add(organizer.user.email) user_objects.append(organizer.user) if owner: unique_emails.add(owner.user.email) user_objects.append(owner.user) for email in unique_emails: send_email_after_event(email, event.name, frontend_url) # Unique user's dict based on their id. unique_users_dict = make_dict(user_objects, "id") for user in unique_users_dict.values(): send_notif_after_event(user, event.name)
def send_after_event_mail(): from app.instance import current_app as app with app.app_context(): events = Event.query.filter_by(state='published', deleted_at=None).all() for event in events: organizers = get_user_event_roles_by_role_name( event.id, 'organizer') speakers = Speaker.query.filter_by(event_id=event.id, deleted_at=None).all() owner = get_user_event_roles_by_role_name(event.id, 'owner').first() current_time = datetime.datetime.now(pytz.timezone(event.timezone)) time_difference = current_time - event.ends_at time_difference_minutes = (time_difference.days * 24 * 60) + \ (time_difference.seconds / 60) frontend_url = get_settings()['frontend_url'] if current_time > event.ends_at and time_difference_minutes < 1440: for speaker in speakers: if not speaker.is_email_overridden: send_email_after_event(speaker.user.email, event.name, frontend_url) send_notif_after_event(speaker.user, event.name) for organizer in organizers: send_email_after_event(organizer.user.email, event.name, frontend_url) send_notif_after_event(organizer.user, event.name) if owner: send_email_after_event(owner.user.email, event.name, frontend_url) send_notif_after_event(owner.user, event.name)