Beispiel #1
0
def listSectionStatus():
    try:
        requested = request.form
        r= Registrar("UPENN_OD_emmK_1000220", "2g0rbtdurlau4didkj9schee95")
        course = r.search({'course_id': requested['course_id']})
        d = {}
        for x in course:
            l = []
            s = x["section_id"]
            print ("section" + s)
            if x["is_closed"]:
                l.append("Closed")
                print "is_closed"
            else:
                l.append("Open")
                print "is _open"
            if (x["activity_description"] == "Lecture"):
                p = x["instructors"][0]["name"]
            elif (x["activity_description"] == "Recitation"):
                p = x["primary_instructor"]
            else:
                p = ""
            print "professor: " + p
            l.append(p)
            t = x["first_meeting_days"]
            print "time: " + t
            l.append(t)
            d[s] = l
        return render_template("courses.html", d = d)
    except ValueError as e:
        return render_template("courses.html", d={})
Beispiel #2
0
	def test_filter_out_courses_where_prereq_not_met(self):
		r = Registrar("UPENN_OD_emFc_1001364", "6kl4eonkquheuti65e32qick6l")
		courses_taken = ["CIS 160", "CIS 110"]
		cis121 = r.section('cis', '121', '001')
		cis262 = r.section('cis', '262', '001')
		all_courses = [cis121, cis262]
		courses_eligble_for = courseComparator.filter_out_courses_where_prereq_not_met(all_courses, courses_taken)
		self.assertEqual(len(courses_eligble_for), 1)
Beispiel #3
0
	def test_multiple_courses_some_conflicts(self):
		r = Registrar("UPENN_OD_emFc_1001364", "6kl4eonkquheuti65e32qick6l")
		cis262 = r.section('cis', '262', '001')
		cis320 = r.section('cis', '320', '001')
		cis380 = r.section('cis', '380', '001')
		econ001 = r.section('econ', '001', '205')
		all_courses = [cis320, cis380, econ001]
		remaing_courses = courseComparator.filter_out_courses_that_overlap(cis262, all_courses)
		self.assertEqual(len(remaing_courses), 1)
def get_opening(course):
    try:
        print "get_opening"
        r = Registrar("UPENN_OD_emmK_1000220", "2g0rbtdurlau4didkj9schee95")
        courses = r.search({'course_id': course['id']})
        # runs once
        for c in courses:
            course['is_closed'] = (c['is_closed'] == True)
            return course
    except OSError:
        print "error in get_opening"
    except ValueError as e:
        print e
def load_all_courses():
    r = Registrar("UPENN_OD_emoG_1000340", "7vgj93rojjmbuh3rrsgs7vc2ic")
    courses = r.search({'course_id': ""})
    # runs once
    for c in courses:
        id = c['section_id']
        is_closed = (c['is_closed'] == True)
        try:
            if (c["activity_description"] == "Lecture"):
                instructor = c["instructors"][0]["name"]
            elif (c["activity_description"] == "Recitation"):
                instructor = c["primary_instructor"]
            else:
                instructor = ""
        except IndexError:
            instructor = ""
        print "adding: " + id
        db.hmset(id, {
            "id": id,
            "is_closed": is_closed,
            "instructor": instructor
        })
 def setUp(self):
     self.registrar = Registrar("UPENN_OD_emFc_1001364",
                                "6kl4eonkquheuti65e32qick6l")
 def __init__(self):
     self.registrar = Registrar('UPENN_OD_emFc_1001364',
                                '6kl4eonkquheuti65e32qick6l')
     os.environ['PCR_AUTH_TOKEN'] = 'kdutFhMEbUaKdvQbcRKszEiwZeThFs'
Beispiel #8
0
	def test_shared_meeting_days_some(self):
		r = Registrar("UPENN_OD_emFc_1001364", "6kl4eonkquheuti65e32qick6l")
		cis262 = r.section('cis', '262', '001')
		cis380 = r.section('cis', '380', '001')
		shared_days = courseComparator.shared_meeting_days(cis262, cis380)
		self.assertEqual(len(shared_days), 2)
Beispiel #9
0
	def test_multiple_sections_of_same_course(self):
		r = Registrar("UPENN_OD_emFc_1001364", "6kl4eonkquheuti65e32qick6l")
		econ001001 = r.section('econ', '001', '001')
		econ001002 = r.section('econ', '001', '002')
		self.assertTrue(courseComparator.courses_overlap(econ001001, econ001002))
Beispiel #10
0
	def test_single_course_conflict(self):
		r = Registrar("UPENN_OD_emFc_1001364", "6kl4eonkquheuti65e32qick6l")
		cis262 = r.section('cis', '262', '001')
		cis320 = r.section('cis', '320', '001')
		self.assertTrue(courseComparator.courses_overlap(cis262, cis320))
import redis
import os
from multiprocessing import Pool
from functools import partial
from twilio.rest import TwilioRestClient
import twilio
from penn.registrar import Registrar
import time

# setup database access
pool = redis.ConnectionPool(host='grideye.redistogo.com',
                            port=9195,
                            db=0,
                            password="******")
db = redis.Redis(connection_pool=pool)
r = Registrar("UPENN_OD_emoG_1000340", "7vgj93rojjmbuh3rrsgs7vc2ic")


# gets course info from course registrar, updates database, and texts users
def completeTask():
    #pool = Pool(5)
    #updated_courses = pool.map(get_opening, get_old_courses())
    updated_courses = [get_opening(course) for course in get_old_courses()]
    #pool.map(update_database, updated_courses)
    for course in updated_courses:
        update_database(course)
    for course in updated_courses:
        text_open_courses(course)


#  gets courses from redis database