def main(): print "Enter the SIS IDs of each course, seperated by a comma and a space.\n" \ "Eg. 7482, 4728, 5472" coursesisid = raw_input(">>> ").split(", ") params['per_page'] = 100 for course in coursesisid: print "Processing..." request = jg.api_list(url + "/api/v1/courses/" \ "sis_course_id:%s/groups" % course, params = params) group = request.call() headers = ["Name", "SIS ID", "Email", "Group"] filename = os.path.join(jg.fileout().get(), "enrollmentlistswithgroups/%s.csv" % course) with open(filename, "a") as fp: writer = csv.writer(fp) writer.writerow(headers) for items in group: print items[u'name'] students = requests.get(url + "/api/v1/groups/%s/users" \ % items[u'id'], params = params).json() for student in students: print student[u'name'] # pulls each student's primary contact email studentdata = requests.get(url + "/api/v1/" \ "users/sis_user_id:%s/profile" % student[u'sis_user_id'], params = params).json() row = [student[u'name'].encode('utf-8', 'ignore'), student[u'sis_user_id'], \ studentdata[u'primary_email'], items[u'name']] with open(filename, "a") as fp: writer = csv.writer(fp) writer.writerow(row) ### ADDS A BLANK LINE BETWEEN EACH GROUP with open(filename, "a") as fp: writer = csv.writer(fp) writer.writerow([""])
def assign_groups(groupcategory, groups, params): groupids = jg.api_list(url +"/api/v1/group_categories/%s/groups" \ % groupcategory, params = params).call() groupids = {items['name'] : items['id'] for items in groupids} for name, group_id in groupids.items(): for student in groups[name]: params["user_id"] = requests.get(url + "/api/v1/users" \ "/sis_user_id:%s/profile" % student, params = params).json()['id'] membership = requests.post(url + "/api/v1/groups/%s/memberships" \ % group_id, params = params).json() print "\nStudent SIS ID " + str(student) + " added to Group " + name + \ "/Group ID " + str(membership['group_id']) print "Membership ID: " + str(membership['id']) + ", status: " + membership['workflow_state']
def get_all_courses(): coursesid = int(raw_input("Please type the account ID of the account in which the courses are found: ")) params["per_page"] = 100 term = jg.terms(coursesid, url, params).choose() courses_url = url + "/api/v1/accounts/%s/courses" % coursesid all_courses = {} data = jg.api_list(courses_url, params).call() for course in data: if course['enrollment_term_id'] == term: all_courses[course['name']] = course['sis_course_id'] return all_courses
def get_all_courses(): coursesid = int( raw_input( "Please type the account ID of the account in which the courses are found: " )) params["per_page"] = 100 term = jg.terms(coursesid, url, params).choose() courses_url = url + "/api/v1/accounts/%s/courses" % coursesid all_courses = {} data = jg.api_list(courses_url, params).call() for course in data: if course['enrollment_term_id'] == term: all_courses[course['name']] = course['sis_course_id'] return all_courses