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)
Exemple #2
0
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))
Exemple #3
0
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
    )
Exemple #5
0
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)
Exemple #6
0
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)