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
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
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
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
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)
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