示例#1
0
    def get_enrollments_for_regid(self, regid, params={}):
        """
        Return a list of enrollments for the passed user regid.

        https://canvas.instructure.com/doc/api/enrollments.html#method.enrollments_api.index
        """
        url = "/api/v1/users/%s/enrollments" % (
            self._sis_id(regid, sis_field="user"))

        courses = Courses()

        enrollments = []
        for datum in self._get_paged_resource(url, params=params):
            course_id = datum["course_id"]
            course = courses.get_course(course_id)

            if course.sis_course_id is not None:
                enrollment = self._enrollment_from_json(datum)
                enrollment.course = course
                # the following 3 lines are not removed
                # to be backward compatible.
                enrollment.course_url = course.course_url
                enrollment.course_name = course.name
                enrollment.sis_course_id = course.sis_course_id
                enrollments.append(enrollment)

        return enrollments
示例#2
0
def get_indexed_by_decrosslisted(by_primary, sws_sections):
    for section in sws_sections:
        base_id = section.section_label()
        alternate_id = None
        try:
            sis_id = section.canvas_section_sis_id()
            canvas_section = Sections().get_section_by_sis_id(sis_id)
            primary_course = Courses().get_course(canvas_section.course_id)
            alternate_id = primary_course.sws_course_id()
        except Exception as ex:
            # primary section doesn't have canvas_section_sis_id
            alternate_id = base_id

        if base_id not in by_primary:
            if alternate_id in by_primary:
                by_primary[base_id] = by_primary[alternate_id]
    return by_primary
示例#3
0
 def get_courses_for_regid(self, regid):
     deprecation("Use restclients.canvas.courses.get_courses_for_regid")
     from restclients.canvas.courses import Courses
     return Courses().get_courses_for_regid(regid)