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)
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)
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))
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"))
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)
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'))
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))
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))
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"))
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)
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"))
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"))
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"))
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)
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)
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)
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)
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)