Courses App

The courses app deals with the accesing course information, the sharing of courses, and the rendering of the course/all course pages.

Views

class courses.views.CourseDetail(**kwargs)[source]

View that handles individual course entities.

get(request, sem_name, year, course_id)[source]

Return detailed data about a single course. Currently used for course modals.

class courses.views.CourseModal(**kwargs)[source]

A FeatureFlowView for loading a course share link which directly opens the course modal on the frontend. Therefore, this view overrides the get_feature_flow method to fill intData with the detailed course json for the modal.abs

Saves a SharedCourseView for analytics purposes.

get_feature_flow(request, code, sem_name, year)[source]

Return data needed for the feature flow for this HomeView. A name value is automatically added in .get() using the feature_name class variable. A semester value can also be provided, which will change the initial semester state of the home page.

class courses.views.SchoolList(**kwargs)[source]
get(request, school)[source]

Provides the basic school information including the schools areas, departments, levels, and the time the data was last updated

courses.views.all_courses(request)[source]

Generates the full course directory page. Includes links to all courses and is sorted by department.

courses.views.course_page(request, code)[source]

Generates a static course page for the provided course code and school (via subdomain). Completely outside of the React framework purely via Django templates.

courses.views.get_classmates_in_course(request, school, sem_name, year, course_id)[source]

Finds all classmates for the authenticated user who also have a timetable with the given course.

Utils

courses.utils.get_sections_by_section_type(course, semester)[source]

Return a map from section type to Sections for a given course and semester.

courses.utils.sections_are_filled(sections)[source]

Return True if all sections are filled beyond their max enrollment.

Serializers

class courses.serializers.CourseSerializer(*args, **kwargs)[source]

Serialize a Course into a dictionary with detailed information about the course, and all related entities (eg Sections). Used for search results and course modals. Takes a context with parameters: school: str (required) semester: Semester (required) student: Student (optional)

get_evals(course)[source]

Flag all eval instances s.t. there exists repeated term+year values. :returns: List of modified evaluation dictionaries (added flag ‘unique_term_year’)

get_popularity_percent(course)[source]

Return percentage of course capacity that is filled by registered students.

get_regexed_courses(course)[source]

Given course data, search for all occurrences of a course code in the course description and prereq info and return a map from course code to course name for each course code.

class courses.serializers.EvaluationSerializer(*args, **kwargs)[source]
class courses.serializers.SectionSerializer(*args, **kwargs)[source]
class courses.serializers.SemesterSerializer(*args, **kwargs)[source]
courses.serializers.get_section_dict(section)[source]

Returns a dictionary of a section including indicator of whether that section is filled