def get(self): user = authentication.auth.get_logged_in_user() if not user: authentication.auth.redirect_to_login(self) university = models.university.get_university(user.get_university()).to_json() semesters = models.semester.get_semesters_for_user(user) all_courses = {} for semester in semesters: all_courses[int(semester['number'])] = utils.utils.semester_as_list(semester['courses']) my_university = university['name'] my_majors = utils.utils.majors_as_text(user.get_majors()) all_majors = models.major.get_majors_for_university(university['id']) view = pages.render_view(DASHBOARD_URI, {'first_name': user.get_first_name(), 'last_name': user.get_last_name(), 'email': user.get_email(), 'my_university': my_university, 'my_majors': my_majors, 'my_courses': all_courses, 'all_majors': all_majors}) pages.render_page(self, view)
def get(self): user = authentication.auth.get_logged_in_user() if not user: authentication.auth.redirect_to_login(self) semesters = models.semester.get_semesters_for_user(user) my_courses = {} all_my_courses = [] for semester in semesters: courses = [] for course_id in semester["courses"]: course = models.course.get_course(course_id).to_json() course = utils.utils.requisites_as_text(course) courses.append(course) all_my_courses.extend(courses) my_courses[int(semester["number"])] = courses majors = user.get_majors() logging.info("My Courses: %s", len(all_my_courses)) requirements = [] for major_id in majors: requirements.extend(models.requirement.get_requirements_for_major(major_id)) requirements_eval = utils.rules.evaluate_requirements(my_courses, requirements) all_courses = [] course_master = [] for requirement in requirements_eval["not_met"]: courses = [] for course_id in requirement["courses"]: course = models.course.get_course(course_id).to_json() course = utils.utils.requisites_as_text(course) if course not in course_master: course_master.append(course) courses.append(course) all_courses.append({"number": requirement["number"], "courses": courses}) messages, requisite_courses = utils.rules.evaluate_requisites(my_courses) missing_courses = [] for requisite_course in requisite_courses: if requisite_course not in course_master: missing_courses.append(requisite_course) if len(missing_courses) > 0: all_courses.append({"number": "requisites", "courses": missing_courses}) logging.info("All courses: %s", len(course_master) + len(missing_courses)) view = pages.render_view( PLAN_URI, {"semester_num": SEMESTER_NUM, "my_courses": my_courses, "all_courses": all_courses, "messages": messages}, ) pages.render_page(self, view)