def get_users_for_course(course_id, user_id, page): canvas = Users(as_user=user_id) users = canvas.get_users_for_course(course_id, params={ 'page': page, 'per_page': getattr(settings, 'COURSE_ROSTER_PER_PAGE', 50), 'enrollment_type': ['student'], 'enrollment_state': ['active'], 'include': ['enrollments', 'avatar_url'] }) return (users, canvas.next_page_url)
def test_get_users_for_course_id(self): canvas = Users() users = canvas.get_users_for_course("862539", params={ "search_term": "jav", "include": ["enrollments"]}) self.assertEquals(len(users), 3, "Found 3 canvas users") user = users[0] self.assertEquals(user.login_id, "javerage", "Login ID") self.assertEquals( user.sis_user_id, "15AE3883B6EC44C349E04E5FE089ABEB", "SIS User ID") self.assertEquals(user.name, "JAMES AVERAGE", "Name") self.assertEquals( user.sortable_name, "AVERAGE, JAMES", "Sortable Name") enrollment = user.enrollments[0] self.assertEquals(enrollment.sis_course_id, "2015-summer-TRAIN-100-A") self.assertEquals(enrollment.role, "DesignerEnrollment", "Role")
def handle(self, *args, **options): file_path = options.get('file_path') outfile = open('lti_instructors.csv', 'wb') csv.register_dialect('unix_newline', lineterminator='\n') writer = csv.writer(outfile, dialect='unix_newline') client = Users() with open(file_path, 'rb') as csvfile: writer.writerow( ['login', 'email', 'full_name', 'first_name', 'last_name']) course_ids = {} user_ids = {} reader = csv.reader(csvfile) for row in reader: if not len(row): continue context_type = row[0] course_id = row[1] if context_type.lower() != 'course': continue if course_id in course_ids: continue users = client.get_users_for_course( course_id, params={ 'enrollment_type': ['teacher', 'designer'], 'include': ['email'] }) course_ids[course_id] = True for user in users: if user.user_id in user_ids: continue user_ids[user.user_id] = True email = user.email if email is None: email = '*****@*****.**' % user.login_id last_name = '' first_name = '' try: (last_name, first_name) = user.sortable_name.split(',') except ValueError: pass writer.writerow([ user.login_id, email, user.name.strip().encode('utf-8'), first_name.strip().encode('utf-8'), last_name.strip().encode('utf-8') ]) outfile.close()