예제 #1
0
def people():
    if request.headers.get('X-Forwarded-Proto') == "http":
        return redirect(request.url.replace('http://', 'https://', 1),
                        code=301)

    if not _has_needed_get((
            "sid",
            "term",
    )):
        return login()

    if not banner.init(sid=request.args["sid"]):
        return login("Bad session!")

    ##

    codes = banner.sectioncodes(request.args["term"])

    ##

    ret = []
    _header(ret, 'Select People')

    ret.append('<form action="search" method="GET">')
    ret.append('<input type="hidden" name="sid" value="{}" />'.format(
        html.escape(banner.lastid())))
    ret.append('<input type="hidden" name="term" value="{}" />'.format(
        html.escape(request.args["term"])))

    ret.append('<div class="form-group">')
    ret.append('<label id="profs">Faculty</label>')
    ret.append(
        '<select id="profs" name="profs" multiple="multiple" size="20" class="form-control">'
    )
    for code, name in sorted(codes["instructors"].items(),
                             key=operator.itemgetter(1)):
        if name != "All":
            ret.append('<option value="{}">{}</option>'.format(
                html.escape(name), html.escape(name)))
    ret.append('</select>')
    ret.append('</div>')

    ret.append('<div class="form-group">')
    ret.append(
        '<label id="students">W-Numbers (separated by whitespace)</label>')
    ret.append(
        '<textarea id="students" name="students" rows="20" class="form-control">'
    )
    ret.append('</textarea>')
    ret.append('</div>')

    ret.append(
        '<input type="submit" class="btn btn-default" value="Submit" />')

    ret.append('</form>')

    _footer(ret)

    return _out(ret)
예제 #2
0
def main(argv):
    sid = argv[1] if len(argv) is 2 else None
    initialized = False
    while not initialized:
        initialized, sid = banner.init(sid=sid), None

    demo_adviseeemails("201710")
    print(banner.lastid())
예제 #3
0
def main(argv):
	sid=argv[1] if len(argv) is 2 else None
	initialized = False
	while not initialized:
		initialized,sid = banner.init(sid=sid),None

	# demo_comp1000info("201710")
	demo_comp1000emails("201710","Derbinsky, Nathaniel")

	print(banner.lastid())
예제 #4
0
def term():
    if request.headers.get('X-Forwarded-Proto') == "http":
        return redirect(request.url.replace('http://', 'https://', 1),
                        code=301)

    if not _has_needed_post((
            "user",
            "pw",
    )):
        return login()

    if not banner.init(u=request.form["user"], p=request.form["pw"]):
        return login("Login failed!")

    ##

    finfo = banner.termform()

    ##

    ret = []
    _header(ret, 'Select Term')

    ret.append('<form action="people" method="GET">')
    ret.append('<input type="hidden" name="sid" value="{}" />'.format(
        html.escape(banner.lastid())))

    ret.append('<div class="form-group">')
    ret.append('<label id="term">Term</label>')
    now = sorted(finfo["params"]["term"].items(), reverse=True)[0][0]
    ret.append('<select name="term" id="term" class="form-control">')
    for code, name in sorted(finfo["params"]["term"].items(),
                             key=operator.itemgetter(1)):
        ret.append('<option {}value="{}">{}</option>'.format(
            'selected="selected" ' if code == now else '', html.escape(code),
            html.escape(name)))
    ret.append('</select>')
    ret.append('</div>')

    ret.append(
        '<input type="submit" class="btn btn-default" value="Submit" />')

    ret.append('</form>')

    _footer(ret)

    return _out(ret)
예제 #5
0
def main(argv):
    sid = argv[1] if len(argv) is 2 else None
    initialized = False
    while not initialized:
        initialized, sid = banner.init(sid=sid), None

    term = "201710"
    wid = "W00243758"
    xyz = banner.getxyz_wid(term, wid)

    banner.termset(term)
    banner.idset(xyz)

    scores = banner.studenttestscores()
    print(scores)

    print(banner.lastid())
예제 #6
0
def main(argv):
	sid=argv[1] if len(argv) is 2 else None
	initialized = False
	while not initialized:
		initialized,sid = banner.init(sid=sid),None

	term = "201710"
	# wid = "W00237397"
	wid = "W00316837"
	xyz = banner.getxyz_wid(term, wid)

	banner.termset(term)
	banner.idset(xyz)
	
	transcript = banner.studenttranscript()
	print("{}: {}".format(transcript["info"]["Name"][0], findgrade(transcript, "ENGL", "100")))
	
	print(banner.lastid())
예제 #7
0
def main(argv):
    sid = argv[1] if len(argv) is 2 else None
    initialized = False
    while not initialized:
        initialized, sid = banner.init(sid=sid), None

    term = "201710"
    wid = "W00365715"
    xyz = banner.getxyz_wid(term, wid)

    banner.termset(term)
    banner.idset(xyz)

    transcript = banner.studenttranscript()
    gpa = transcript["totals"]["overall"]["gpa"] if "overall" in transcript[
        "totals"] else "unknown"
    print("{}: {}".format(transcript["info"]["Name"][0], gpa))

    print(banner.lastid())
예제 #8
0
def search():
    if request.headers.get('X-Forwarded-Proto') == "http":
        return redirect(request.url.replace('http://', 'https://', 1),
                        code=301)

    if not _has_needed_get((
            "sid",
            "term",
    )):
        return login()

    if not banner.init(sid=request.args["sid"]):
        return login("Bad session!")

    ##

    profslist = request.args.getlist("profs")
    studentslist = request.args["students"].split()

    days = demo_schedule(request.args["term"], profslist, studentslist)
    num = len(profslist) + len(studentslist)

    day_names = list(days.keys())
    slot_names = sorted(days[day_names[0]].keys())

    ##

    ret = []
    _header(ret, 'Heatmap')

    if profslist:
        ret.append('<h4>Faculty ({}) <small>'.format(len(profslist)) +
                   html.escape('; '.join(profslist)) + '</small></h4>')

    if studentslist:
        ret.append('<h4>Students ({}) <small>'.format(len(studentslist)) +
                   html.escape('; '.join(studentslist)) + '</small></h4>')

    ret.append(
        '<div class="row"><div class="table-responsive"><table class="table table-bordered table-condensed" style="width: auto !important">'
    )

    ret.append('<tr>')
    ret.append('<th width="80px"></th>')
    for d, name in _DAYS.items():
        ret.append('<th width="120px" class="text-center">{}</th>'.format(
            html.escape(name)))
    ret.append('</tr>')

    for slot in slot_names:
        ret.append('<tr>')
        ret.append('<th>{}</th>'.format(html.escape(_demo_search_time(slot))))
        for d in _DAYS.keys():
            count = len(days[d][slot])
            ret.append('<td title="{}" class="text-center {}">{}</td>'.format(
                html.escape("; ".join(days[d][slot])),
                _demo_search_color(count, num),
                html.escape(str(count) if count > 0 else "")))
        ret.append('</tr>')

    ret.append('</table></div><div>')

    ret.append(
        '<div class="row"><a class="btn btn-primary hidden-print" href="{}">Search Again</a></div>'
        .format(
            url_for('people', sid=banner.lastid(), term=request.args["term"])))

    _footer(ret)

    return _out(ret)