예제 #1
0
def admin_results():
    if 'google_token' not in session:
        return redirect('/login')
    if session['user_type'] == UserType.STUDENT.value:
        return redirect('/student_dashboard')
    user = get_user(session['user_email'])
    search_type = request.args.get('type')
    search_name = request.args.get('name')
    search_year = request.args.get('year')
    if search_name == "" or search_name == "Any":
        search_name = None
    if search_year == "" or search_year == "Any":
        search_year = None
    # query db to get results based on user input.
    # NOTE: the user isn't required to fill in every field
    if search_type == "courses":
        search_semester = request.args.get('semester')
        semester_enums = {
            'Spring': SemesterType.SPRING,
            'Summer': SemesterType.SUMMER,
            'Fall': SemesterType.FALL
        }
        search_semester = semester_enums[search_semester]
        classes = get_classes(search_name, search_year, search_semester)
        results = search_classes_json(user, classes)

    elif search_type == "aocs":
        results = search_aoc_json(user, 'divisional', search_name, search_year)
    elif search_type == "doubles":
        results = search_aoc_json(user, 'double', search_name, search_year)
    elif search_type == "slashes":
        results = search_aoc_json(user, 'slash', search_name, search_year)
    else:
        results = None
    return results
예제 #2
0
def admin_addslash():
    if 'google_token' not in session:
        return redirect('/login')
    if session['user_type'] == UserType.STUDENT.value:
        return redirect('/student_dashboard')
    form = request.form.to_dict()
    #print(form)
    add_aoc("slash", form, request.form)
    return redirect('/admin')
예제 #3
0
def admin_removecourse():
    if 'google_token' not in session:
        return redirect('/login')
    if session['user_type'] == UserType.STUDENT.value:
        return redirect('/student_dashboard')
    course = request.form['id']
    if session['user_type'] == UserType.ADMIN.value:
        delete_class(get_class_by_id(course))

    return "Successfully removed course " + course
예제 #4
0
def admin_addaoc():
    if 'google_token' not in session:
        return redirect('/login')
    if session['user_type'] == UserType.STUDENT.value:
        return redirect('/student_dashboard')
    form = request.form.to_dict()
    # #print(request.form.getlist("req1courses"))
    # #print(form)
    add_aoc("divisional", form, request.form)
    return redirect('/admin')
예제 #5
0
def admin_removeaoi():
    if 'google_token' not in session:
        return redirect('/login')
    if session['user_type'] == UserType.STUDENT.value:
        return redirect('/student_dashboard')

    aoi = request.form['id']
    if session['user_type'] == UserType.ADMIN.value:
        delete_aoc(get_aoc_by_id(aoi))
    return "Successfully removed AOI " + aoi
예제 #6
0
def my_courses():
    if 'google_token' not in session:
        return redirect('/login')
    if session['user_type'] == UserType.ADMIN.value:
        return redirect('/admin')
    user = get_user(session['user_email'])
    course_list = get_classes_taken(user)
    ##print(course_list)
    courses = get_classes_taken_json(course_list)
    ##print(courses)
    return render_template('courses.html', courses=courses)
예제 #7
0
def settings_form_submit():
    if 'google_token' not in session:
        return redirect('/login')
    if session['user_type'] == UserType.ADMIN.value:
        return redirect('/admin')
    name = request.form['name']
    da_year = request.form['year']
    update_user(session['user_email'], name, da_year)
    user = get_user(session['user_email'])
    session['user_name'] = user.user_name
    session['user_year'] = user.year_started
    return redirect('/student_dashboard/settings')
예제 #8
0
def signup_form_submit():
    if 'google_token' not in session:
        return redirect('/login')
    name = request.form['name']
    #aoc = request.form.getlist(''divisional'')
    #slash = request.form.getlist('slash')
    da_year = request.form['year']
    make_user(session['user_email'], name, da_year, UserType.STUDENT)
    user = get_user(session['user_email'])
    session['user_name'] = user.user_name
    session['user_year'] = user.year_started
    session['user_type'] = user.user_type.value
    return redirect('/student_dashboard')
예제 #9
0
def lacs_form_submit():
    if 'google_token' not in session:
        return redirect('/login')
    if session['user_type'] == UserType.ADMIN.value:
        return redirect('/admin')
    ##print(request.form)
    user = get_user(session['user_email'])
    old_json = json.loads(request.form['old'])
    new_json = json.loads(request.form["new"])
    for old_lac, new_lac in zip(old_json, new_json):
        if old_json[old_lac]['fulfilled'] == False and new_json[new_lac][
                'fulfilled'] == True:
            take_lac_default(user, new_json[new_lac]['id'])
    return redirect('/student_dashboard/lacs')
예제 #10
0
def settings():
    if 'google_token' not in session:
        return redirect('/login')
    if session['user_type'] == UserType.ADMIN.value:
        return redirect('/admin')
    user = get_user(session['user_email'])
    aocs = get_aoc_json(user, 'divisional')
    aocs_slash = get_aoc_json(user, "slash")
    aocs_double = get_aoc_json(user, "double")
    return render_template('settings.html',
                           name=session['user_name'],
                           year=session['user_year'],
                           aocs=json.loads(aocs),
                           doubles=json.loads(aocs_double),
                           slashes=json.loads(aocs_slash))
예제 #11
0
def oauth_logout():
    session.pop('google_token', None)
    session.pop('google_user', None)
    session.pop('user_email', None)
    session.pop('user_year', None)
    session.pop('user_type', None)
    return redirect('/login')
예제 #12
0
def dash_stud():
    if 'google_token' not in session:
        return redirect('/login')
    if session['user_type'] == UserType.ADMIN.value:
        return redirect('/admin')
    user = get_user(session['user_email'])
    aocs = get_aoc_json(user, 'divisional')
    doubles = get_aoc_json(user, 'double')
    slashes = get_aoc_json(user, 'slash')
    ##print(aocs)
    ##print(doubles)
    ##print(slashes)
    return render_template('dash_stud.html',
                           name=session['user_name'],
                           aocs=aocs,
                           doubles=doubles,
                           slashes=slashes)
예제 #13
0
def oauth_google_authorized():
    resp = GOOGLE.authorized_response()
    if resp is None:
        return 'Google denied access. Reason: %s \n Error: %s' % (
            request.args['error_reason'], request.args['error_description'])
    session['google_token'] = (resp['access_token'], '')
    user_info = GOOGLE.get('userinfo').data
    session['google_user'] = user_info
    session['user_email'] = session['google_user']['email']
    user = get_user(session['user_email'])
    if user is None:
        return redirect('/signup_form')
    session['user_name'] = user.user_name
    session['user_year'] = user.year_started
    session['user_type'] = user.user_type.value
    if session['user_type'] == UserType.ADMIN.value:
        return redirect('/admin')
    return redirect('/student_dashboard')
예제 #14
0
def authorized():
    resp = google.authorized_response()
    if resp is None:
        return 'Access denied: reason=%s error=%s' % (
            request.args['error_reason'], request.args['error_description'])
    session['google_token'] = (resp['access_token'], '')
    _me = google.get("https://www.googleapis.com/plus/v1/people/me").data
    currentUser.name = _me["displayName"]
    currentUser.email = _me["emails"][0]["value"]
    return redirect(url_for('enterRegistration'))
예제 #15
0
def admin_addcourse():
    if 'google_token' not in session:
        return redirect('/login')
    if session['user_type'] == UserType.STUDENT.value:
        return redirect('/student_dashboard')

    name = request.form['name']
    da_year = request.form['year']
    semester = request.form['semester']
    semester_enums = {
        'spring': SemesterType.SPRING,
        'summer': SemesterType.SUMMER,
        'fall': SemesterType.FALL
    }
    semester = semester_enums[semester]
    credit = request.form['credit']
    tags = request.form.getlist('tags')
    create_class([name, semester, da_year, credit], tags)
    #print(tags)
    return redirect('/admin')
예제 #16
0
def lacs():
    if 'google_token' not in session:
        return redirect('/login')
    lac = {
        'LAC0': {
            'name': 'Diverse Perspectives',
            'fulfilled': True,
            'courses': ['External Credit'],
            'id': 0
        },
        'LAC1': {
            'name': 'Social Science',
            'fulfilled': False,
            'courses': None,
            'id': 1
        }
    }
    if session['user_type'] == UserType.ADMIN.value:
        return redirect('/admin')
    user = get_user(session['user_email'])
    lac = get_lacs_json(user)
    ##print(lac)
    return render_template('lac.html', lac=lac)
예제 #17
0
def admin():
    if 'google_token' not in session:
        return redirect('/login')
    # if session['user_type'] == UserType.STUDENT.value:
    #     return redirect('/student_dashboard')

    tags = get_all_tags()

    requirements = get_all_requirements_json()

    courses = get_all_classes_json()
    # #print(requirements)
    # #print(courses)
    return render_template('admin.html',
                           tags=tags,
                           requirements=requirements,
                           courses=courses)
예제 #18
0
def transfersession(sess):
    session['google_token'] = sess
    return redirect(url_for('index'))
예제 #19
0
def explore():
    if 'google_token' not in session:
        return redirect('/login')
    if session['user_type'] == UserType.ADMIN.value:
        return redirect('/admin')
    return render_template('explore.html')
예제 #20
0
def signup_form():
    if 'google_token' not in session:
        return redirect('/login')
    return render_template('signup_form.html')
예제 #21
0
def login():
    if 'google_token' in session:
        return redirect('/student_dashboard')
    return render_template('login.html')
예제 #22
0
def index():
    return redirect('/login')