I need to produce a CSV file that lists which Courses have Quizzes.
# Checkes each course in the array course_ids[] # to see if it has any quizzes # it does not determine if the quizz is published or not # it will return TRUE for both published and unpublished quizzes import requests import csv import os # beta expires April 30th 2024 API_TOKEN = '...' #beta BASE_URL = 'https://...instructure.com/api/v1/' # Array of course IDs to check for quizzes course_ids = [2486,8500,8501,8502,1525] # Set up headers with Authorization token headers = { 'Authorization': 'Bearer ' + API_TOKEN, } # Function to check if a course contains any quizzes def course_has_quiz(course_id): # API endpoint to list quizzes in a specific course url = f"{BASE_URL}courses/{course_id}/quizzes" # Make a GET request to the Canvas API response = requests.get(url, headers=headers) # Check if the request was successful (status code 200) if response.status_code == 200: quizzes = response.json() return len(quizzes) > 0 else: print(f"Failed to retrieve quizzes for course {course_id}. Status code: {response.status_code}") return False # Function to get the next version number for the CSV file def get_next_version_number(): current_version = 0 files = os.listdir('.') for file in files: if file.startswith('course_quizzes_') and file.endswith('.csv'): try: version = int(file.split('_')[2].split('.')[0]) if version >= current_version: current_version = version + 1 except ValueError: pass return current_version # Export course data to CSV file with dynamic version number def export_course_data_to_csv(course_data): next_version = get_next_version_number() csv_filename = f'course_quizzes_{next_version:03d}.csv' with open(csv_filename, 'w', newline='') as csvfile: csv_writer = csv.writer(csvfile) csv_writer.writerow(['Course ID', 'Has Quiz']) for course_id, has_quiz in course_data.items(): csv_writer.writerow([course_id, has_quiz]) return csv_filename # Return the filename # Main function def main(): course_data = {} # Iterate over course IDs and check if each course has a quiz for course_id in course_ids: has_quiz = course_has_quiz(course_id) course_data[course_id] = has_quiz print(f"Checking course {course_id}") # Export course data to CSV file csv_filename = export_course_data_to_csv(course_data) print(f"Course data exported to {csv_filename}") if __name__ == "__main__": main()
we had a student make up a quiz, and the original assign to was deleted to assign the student for a make up, is there a way to recover the other students grades?
One of the teachers has registered for Google Services in her Canvas account. However, she is unable to link the Google Assignment LTI as an external tool for assignment submissions. The error message is "account not linked" after clicking continue at this step: When I try to go into this teacher's course as an admin and…
When I want to create a recording within an assignment, quiz, or page, the recording window always blocks the text that I want to record. It would be helpful to have a smaller recording window for audio-only recordings or, even better, a window that can be moved where it does not block the text. The way it is now, I have…
a { text-decoration: none; color: #464feb; } tr th, tr td { border: 1px solid #e6e6e6; } tr th { background-color: #f5f5f5; } One of the most impactful features lost when moving from the legacy SpeedGrader to the new SpeedGrader is the preservation of file submission order for assignments that contain multiple uploaded…
Hello Canvas Community, Our institution is planning a migration from Banner to Workday Student and is beginning to evaluate the best approach to integrating Workday with Canvas. Our current integration is: Banner → Ethos API → ILP → Canvas We would like to learn from other institutions that have already migrated to Workday…