コード例 #1
0
def rsvp():
    if not auth_utils.check_login():
        return auth_utils.login_redirect()

    accepted = helpers.check_accepted(flask.session['username'],
                                      flask.session['username'])
    return flask.render_template("rsvp.html", accepted=accepted)
コード例 #2
0
def status():
    if not auth_utils.check_login():
        return auth_utils.login_redirect()

    status = helpers.check_status(flask.session['username'],
                                  flask.session['username'])
    return flask.render_template("dashboard.html", status=status)
コード例 #3
0
ファイル: routes.py プロジェクト: TheHacktech/hacktechpy.io
def show_stats():
    if not auth_utils.check_login() or not auth_utils.check_admin(
            flask.session['username']):
        return flask.redirect(flask.url_for("home"))
    default_stats = helpers.get_current_stats()
    return flask.render_template("stats.html",
                                 raw_data=json.dumps(default_stats))
コード例 #4
0
def update_status():
    if not auth_utils.check_login():
        return auth_utils.login_redirect()
    email = flask.session['username']
    helpers.update_status(
        email,
        flask.request.form.get("RSVPed") or flask.request.form.get("Declined"),
        None)
    return flask.redirect(flask.url_for(".status"))
コード例 #5
0
ファイル: routes.py プロジェクト: TheHacktech/hacktechpy.io
def view_application(user_id):
    if not auth_utils.check_login() or not auth_utils.check_admin(
            flask.session['username']):
        return flask.redirect(flask.url_for("home"))
    info = helpers.get_application(user_id)
    status = helpers.get_status(user_id)
    return flask.render_template("view_application.html",
                                 info=info,
                                 status=status)
コード例 #6
0
ファイル: routes.py プロジェクト: TheHacktech/hacktechpy.io
def update_status(user_id):
    if not auth_utils.check_login() or not auth_utils.check_admin(
            flask.session['username']):
        return flask.redirect(flask.url_for("home"))
    helpers.update_status(user_id, flask.request.form.get('new_status'),
                          flask.request.form.get('reimbursement_amount'),
                          app_helpers.get_user_id(flask.session['username']))
    flask.flash('Status has been updated')
    return flask.redirect(flask.url_for('judging.judge'))
コード例 #7
0
def update_applications():
    """Handles an application update request."""
    if not auth_utils.check_login():
        return auth_utils.login_redirect()
    action = flask.request.form.get("Submit") or flask.request.form.get("Save")
    email = flask.session['username']
    first_name = flask.request.form.get("firstName", None)
    middle_name = flask.request.form.get("middleName", None)
    last_name = flask.request.form.get("lastName", None)
    preferred_name = flask.request.form.get("preferredName", None)
    phone_number = flask.request.form.get("phoneNumber", None)
    school = flask.request.form.get("school", None)
    major = flask.request.form.get("major", None)
    degree_type = flask.request.form.get("degreeType", None)
    graduation_year = flask.request.form.get("graduationYear", None)
    github = flask.request.form.get("github", None)
    linkedin = flask.request.form.get("linkedin", None)
    # Special cases for major and school not in options
    if school == "N/A" or not school:
        school_opt = flask.request.form.get("school_opt", None)
        school = school if school_opt == None or school_opt == "" else school_opt
    if major == "N/A" or not major:
        major = flask.request.form.get("major_opt", None)
    # Check if the request has a resume attached
    resume_file = None
    if 'resume' in flask.request.files:
        resume_file = flask.request.files['resume']

    latino = flask.request.form.get("latino", None)
    race = flask.request.form.getlist("race", None)
    gender = flask.request.form.get("gender", None)
    shirt_size = flask.request.form.get("shirtSize", None)
    need_transportation = flask.request.form.get("needTransportation", None)
    bus_from = flask.request.form.get("busFrom", None)
    airport = flask.request.form.get("airport", None)
    dietary_restrictions = flask.request.form.get("dietaryRestrictions", None)
    diet_choices = flask.request.form.getlist("dietaryRestrictionsChoices",
                                              None)
    diet_details = flask.request.form.get("dietaryRestrictionsDetail", None)
    q1 = flask.request.form.get("Q1", None)
    q2 = flask.request.form.get("Q2", None)
    q3 = flask.request.form.get("Q3", None)
    q4 = flask.request.form.get("Q4", None)
    code_of_conduct = (flask.request.form.get("codeOfConduct1", None) == "True") \
            and (flask.request.form.get("codeOfConduct2", None) == "True")
    success, msg = helpers.handle_update_applications(
        action, email, phone_number, school, major, degree_type,
        graduation_year, github, linkedin, resume_file, latino, race, gender,
        shirt_size, need_transportation, bus_from, airport,
        dietary_restrictions, diet_choices, diet_details, q1, q2, q3, q4,
        code_of_conduct, first_name, middle_name, last_name, preferred_name)
    # Display message from application update
    flask.flash(msg)
    return flask.redirect(
        flask.url_for("applications.applications",
                      submit=True if action == "Submit" else False))
コード例 #8
0
ファイル: routes.py プロジェクト: TheHacktech/hacktechpy.io
def update_waiver_status(waiver_type, user_id):
    if not auth_utils.check_login() or not auth_utils.check_admin(
            flask.session['username']):
        return flask.redirect(flask.url_for("home"))
    helpers.update_waiver_status(
        user_id, flask.request.form.get('new_status'),
        auth_utils.get_user_id(flask.session['username']), waiver_type)
    flask.flash('Status has been updated')
    return flask.redirect(
        flask.url_for('.view_caltech_waiver', user_id=user_id))
コード例 #9
0
ファイル: routes.py プロジェクト: TheHacktech/hacktechpy.io
def waivers():
    if not auth_utils.check_login():
        return auth_utils.login_redirect()
    email = flask.session['username']
    user_id = auth_utils.get_user_id(email)
    return flask.render_template(
        "waivers.html",
        RSVPed=(judging_helpers.get_status(user_id)['status'] == "RSVPed"),
        caltech_waiver=helpers.get_waiver_status(user_id, "caltech_waiver"),
        medical_info=helpers.get_waiver_status(user_id, "medical_info"))
コード例 #10
0
ファイル: routes.py プロジェクト: TheHacktech/hacktechpy.io
def view_caltech_waiver(user_id):
    if not auth_utils.check_login() or not auth_utils.check_admin(
            flask.session['username']):
        return flask.redirect(flask.url_for("home"))
    info = helpers.get_waiver(user_id, "caltech_waiver")
    info.update(helpers.get_waiver(user_id, "medical_info"))
    info['user_id'] = user_id
    status = helpers.get_waiver_status(user_id, "caltech_waiver")
    status.update(helpers.get_waiver_status(user_id, "medical_info"))
    return flask.render_template("view_caltech_waiver.html",
                                 info=info,
                                 status=status)
コード例 #11
0
ファイル: routes.py プロジェクト: TheHacktech/hacktechpy.io
def serve_resume_book():
    if not auth_utils.check_login() or not auth_utils.check_admin(
            flask.session['username']):
        return flask.redirect(flask.url_for("home"))
    fields = flask.request.form.getlist("groups", None)
    if fields == None:
        return flask.redirect(flask.url_for("judging.judge"))

    helpers.generate_resume_book(fields)
    return flask.redirect(
        flask.url_for("judging.uploaded_file",
                      filename="hacktech_resume_book.pdf"))
コード例 #12
0
ファイル: routes.py プロジェクト: TheHacktech/hacktechpy.io
def update_caltech_waiver():
    if not auth_utils.check_login():
        return auth_utils.login_redirect()
    email = flask.session['username']
    if 'caltech_waiver' in flask.request.files:
        waiver_file = flask.request.files['caltech_waiver']
    else:
        flask.flash("Please upload your filled waiver!")
        flask.redirect(flask.url_for(".caltech_waiver"))

    helpers.save_info(email, waiver_file, "WAIVERS", "caltech_waiver")
    flask.flash(
        "Thanks for submitting a waiver! A Hacktech organizer will check and make sure that your waiver is complete."
    )
    return flask.redirect(flask.url_for(".waivers"))
コード例 #13
0
ファイル: routes.py プロジェクト: TheHacktech/hacktechpy.io
def update_medical_info():
    if not auth_utils.check_login():
        return auth_utils.login_redirect()
    email = flask.session['username']
    if 'medical_info' in flask.request.files:
        waiver_file = flask.request.files['medical_info']
    else:
        flask.flash("Please upload your filled medical information!")
        flask.redirect(flask.url_for(".medical_information"))

    helpers.save_info(email, waiver_file, "MEDICAL", "medical_info")
    flask.flash(
        "Thanks for submitting your medical information! A Hacktech organizer will check and make sure that your info is complete."
    )
    return flask.redirect(flask.url_for(".waivers"))
コード例 #14
0
ファイル: routes.py プロジェクト: TheHacktech/hacktechpy.io
def uploaded_file(filename):
    '''
    Serves the actual uploaded file.
    '''
    if not auth_utils.check_login():
        return flask.redirect(flask.url_for("home"))

    user_res_name = app_helpers.check_resume_exists(
        app_helpers.get_user_id(flask.session['username']))

    if user_res_name != filename and not auth_utils.check_admin(
            flask.session['username']):
        return flask.redirect(flask.url_for("home"))
    uploads = os.path.join(flask.current_app.root_path,
                           flask.current_app.config['RESUMES'])
    return flask.send_from_directory(uploads, filename, as_attachment=False)
コード例 #15
0
ファイル: routes.py プロジェクト: TheHacktech/hacktechpy.io
def uploaded_waiver_file(filename, waiver_type):
    ''' 
    This function should be collapsed with the function below
    '''
    if not auth_utils.check_login():
        return flask.redirect(flask.url_for("home"))

    cur_user_waiver = helpers.get_waiver(
        auth_utils.get_user_id(flask.session['username']), waiver_type)

    if cur_user_waiver != filename and not auth_utils.check_admin(
            flask.session['username']):
        return flask.redirect(flask.url_for("home"))

    folder_path = "WAIVERS" if waiver_type == "caltech_waiver" else "MEDICAL"
    uploads = os.path.join(flask.current_app.root_path,
                           flask.current_app.config[folder_path])
    return flask.send_from_directory(uploads, filename, as_attachment=False)
コード例 #16
0
ファイル: routes.py プロジェクト: TheHacktech/hacktechpy.io
def general_waiver(waiver_type, link, title):
    if not auth_utils.check_login():
        return auth_utils.login_redirect()
    email = flask.session['username']
    # TODO: implement
    #status = helpers.submitted_caltech_waiver(email, waiver_type)
    form_info = judging_helpers.get_waiver(auth_utils.get_user_id(email),
                                           waiver_type)
    form_info['waiver_name'] = form_info[waiver_type + '_url'].split("/")[-1]
    form_info['waiver_url'] = form_info[waiver_type + '_url']
    form_info['waiver_update'] = flask.url_for(
        ".update_{0}".format(waiver_type))
    form_info['waiver_type'] = waiver_type
    return flask.render_template("caltech_waiver.html",
                                 form_info=form_info,
                                 waiver_type=waiver_type,
                                 link=link,
                                 title=title)
コード例 #17
0
def judge():
    curpage = int(flask.request.args.get('page', 0))
    page_size = flask.session.get('page_size', 100)
    if page_size == "":
        page_size = 100
    else:
        page_size = int(page_size)
    flask.session['page_size'] = page_size
    if not auth_utils.check_login() or not auth_utils.check_admin(
            flask.session['username']):
        return flask.redirect(flask.url_for("home"))
    info = helpers.get_all_application_links()
    total_pages = int(len(info) / page_size) + 1
    info = info[curpage * page_size:(curpage + 1) * page_size]
    return flask.render_template("judge.html",
                                 info=info,
                                 page=curpage,
                                 total_pages=total_pages,
                                 page_size=page_size)
コード例 #18
0
def applications():
    if not auth_utils.check_login():
        return auth_utils.login_redirect()
    email = flask.session['username']
    submitted = flask.request.args.get("submit", "")
    majors = helpers.get_majors()
    schools = helpers.get_schools()
    form_info, validations = helpers.get_form_info(email)
    form_info.major_opt = form_info.major if form_info.major not in majors else ""
    form_info.school_opt = form_info.school if form_info.school not in schools else ""
    if form_info.school_opt != "":
        form_info.school = "N/A"
    if form_info.major_opt != "":
        form_info.major = "N/A"
    if submitted != "True":
        validations = helpers.ValidationForm()
    return flask.render_template("applications.html",
                                 schools=schools,
                                 majors=majors,
                                 form_info=form_info,
                                 submitted=(helpers.check_submitted(
                                     email, email)),
                                 validations=validations.info)