Пример #1
0
def get_sis_enrollments_for_user_in_course(user_sis_id, course_sis_id):
    canvas = Enrollments()
    enrollments = []
    for enrollment in canvas.get_enrollments_for_course_by_sis_id(
            course_sis_id, {'user_id': canvas.sis_user_id(user_sis_id)}):
        try:
            valid_academic_section_sis_id(enrollment.sis_section_id)
            enrollments.append(enrollment)
        except CoursePolicyException:
            continue
    return enrollments
Пример #2
0
def get_sis_enrollments_for_user_in_course(user_sis_id, course_sis_id):
    canvas = Enrollments()
    enrollments = []
    for enrollment in canvas.get_enrollments_for_course_by_sis_id(
        course_sis_id, {"user_id": canvas.sis_user_id(user_sis_id)}
    ):
        try:
            valid_academic_section_sis_id(enrollment.sis_section_id)
            enrollments.append(enrollment)
        except CoursePolicyException:
            continue
    return enrollments
Пример #3
0
def get_sis_sections_for_course(course_sis_id):
    sis_sections = []
    try:
        for section in Sections().get_sections_in_course_by_sis_id(
                course_sis_id):
            try:
                valid_academic_section_sis_id(section.sis_section_id)
                sis_sections.append(section)
            except CoursePolicyException:
                pass
    except DataFailureException as err:
        if err.status != 404:
            raise
    return sis_sections
Пример #4
0
def get_active_sis_enrollments_for_user(user_sis_id, roles=[]):
    canvas = Enrollments(per_page=100)

    params = {'state': [ENROLLMENT_ACTIVE]}
    if len(roles):
        params['type'] = roles

    enrollments = []
    for enrollment in canvas.get_enrollments_for_regid(user_sis_id, params):
        try:
            valid_academic_section_sis_id(enrollment.sis_section_id)
            enrollments.append(enrollment)
        except CoursePolicyException:
            continue
    return enrollments
Пример #5
0
    def all_course_enrollments(self, course_id):
        group_section_id = group_section_sis_id(course_id)
        sis_enrollments = {}
        group_enrollments = set()
        for enr in get_enrollments_for_course_by_sis_id(course_id):
            # Split the enrollments into sis and group enrollments,
            # discarding enrollments for adhoc sections
            try:
                valid_academic_section_sis_id(enr.sis_section_id)
                sis_enrollments[enr.login_id.lower()] = enr.sis_section_id

            except CoursePolicyException:
                if enr.sis_section_id == group_section_id:
                    group_enrollments.add(SetMember(enr.login_id, enr.role))

        return (sis_enrollments, group_enrollments)
Пример #6
0
def get_sis_sections_for_course(course_sis_id):
    @retry(DataFailureException, status_codes=[408, 500, 502, 503, 504], tries=5, delay=3, logger=logger)
    def _get_sections(course_sis_id):
        try:
            return Sections().get_sections_in_course_by_sis_id(course_sis_id)
        except DataFailureException as err:
            if err.status == 404:
                return []
            else:
                raise

    sis_sections = []
    for section in _get_sections(course_sis_id):
        try:
            valid_academic_section_sis_id(section.sis_section_id)
            sis_sections.append(section)
        except CoursePolicyException:
            continue

    return sis_sections