def send_kickoff_mail(): df = get_participants(PARTICIPANTS_SPREADSHEET_URL, PARTICIPANTS_RANGE_NAME) to_send_df = df[(df['kickoff_mail'] == 0) & (df['sent_preds'] > 0) & (df['paid'] > 0)] file_dir = os.path.join(PROJECT_DIR, PREDICTIONS_FILE_NAME) context = { 'first_prize': FIRST_PRIZE, 'second_prize': SECOND_PRIZE, 'third_prize': THIRD_PRIZE } send_customized_mail(df, to_send_df, PARTICIPANTS_SPREADSHEET_URL, PARTICIPANTS_RANGE_NAME, CURRENT_DIR, KICKOFF_EMAIL_SUBJECT, context, files=[file_dir]) update_spreadsheet(df, to_send_df, 'kickoff_mail', PARTICIPANTS_SPREADSHEET_URL, PARTICIPANTS_RANGE_NAME)
def send_follow_up_mail(): part_df = get_participants( PARTICIPANTS_SPREADSHEET_URL, PARTICIPANTS_RANGE_NAME ) part_df['name'] = part_df['first_name'] + ' ' + part_df['surname'] pos_df = get_positions() df = pd.merge(pos_df, part_df) df['support_message'] = df['position'].apply(get_support_message) usrs = get_object_list( User, df, 'name', ['email', 'support_message'], TEMPLATES ) for usr in usrs: participants = get_object_list( Participant, df, 'name', ['score', 'position'], TEMPLATES ) usr.participants = participants for usr in usrs: mail_to, mail_subject, mail_body = prepare_mail(usr, TEMPLATES) # with open('html_example.html', 'w') as f: # f.write(mail_body) send_mail([mail_to], mail_subject, mail_body) print('email sent to {}'.format(mail_to))
def send_pay_recordatory_mail(): df = get_participants( PARTICIPANTS_SPREADSHEET_URL, PARTICIPANTS_RANGE_NAME ) to_send_df = df[(df['received_mail'] > 0) & (df['paid'] == 0)] context = {'lim_day': LIM_DAY, 'lim_month': LIM_MONTH} send_customized_mail( df, to_send_df, PARTICIPANTS_SPREADSHEET_URL, PARTICIPANTS_RANGE_NAME, CURRENT_DIR, PAY_RECORDATORY_EMAIL_SUBJECT, context, files=None ) update_spreadsheet( df, to_send_df, 'pay_recordatory_mail', PARTICIPANTS_SPREADSHEET_URL, PARTICIPANTS_RANGE_NAME )
def send_file_recordatory_mail(): df = get_participants( PARTICIPANTS_SPREADSHEET_URL, PARTICIPANTS_RANGE_NAME ) to_send_df = df[(df['welcome_mail'] > 0) & (df['sent_preds'] == 0)] context = {'lim_day': LIM_DAY, 'lim_month': LIM_MONTH} file_dir = os.path.join(PROJECT_DIR, FILE_NAME) send_customized_mail( df, to_send_df, PARTICIPANTS_SPREADSHEET_URL, PARTICIPANTS_RANGE_NAME, CURRENT_DIR, FILE_RECORDATORY_EMAIL_SUBJECT, context, files=[file_dir] ) update_spreadsheet( df, to_send_df, 'file_recordatory_mail', PARTICIPANTS_SPREADSHEET_URL, PARTICIPANTS_RANGE_NAME )
def send_close_mail(): part_df = get_participants(PARTICIPANTS_SPREADSHEET_URL, PARTICIPANTS_RANGE_NAME) part_df['name'] = part_df['first_name'] + ' ' + part_df['surname'] pos_df = get_positions() df = pd.merge(pos_df, part_df) df['position'] = df.index + 1 test = pos_df[~pos_df['name'].isin(df['name'])] if not test.empty: logger.info("These participants are missing") print(test) sys.exit() usrs = get_object_list( User, df, 'name', ['email', 'first_winner', 'second_winner', 'third_winner'], TEMPLATES) for usr in usrs: participants = get_object_list(Participant, df, 'name', ['score', 'position'], TEMPLATES) usr.participants = participants for usr in usrs: mail_to, mail_subject, mail_body = prepare_mail(usr, TEMPLATES) # with open('html_example.html', 'w') as f: # f.write(mail_body) # sys.exit() send_mail([mail_to], mail_subject, mail_body)
def send_welcome_mail(): df = get_participants(PARTICIPANTS_SPREADSHEET_URL, PARTICIPANTS_RANGE_NAME) to_send_df = df[df['welcome_mail'] == 0] file_dir = os.path.join(PROJECT_DIR, FILE_NAME) context = {'lim_day': LIM_DAY, 'lim_month': LIM_MONTH} send_customized_mail(df, to_send_df, PARTICIPANTS_SPREADSHEET_URL, PARTICIPANTS_RANGE_NAME, CURRENT_DIR, WELCOME_EMAIL_SUBJECT, context, files=[file_dir]) update_spreadsheet(df, to_send_df, 'welcome_mail', PARTICIPANTS_SPREADSHEET_URL, PARTICIPANTS_RANGE_NAME)