Copying grades from one Canvas course to another
In many cases students participate in one Canvas course and they complete some of the requirements, but do not complete the whole course. In my university these students can complete the course in the future, but need to re-register for the course, which means that they will now be enrolled in a new course round and this will (generally) use a new Canvas course. Rather than having to switch back and forth between the two gradebooks to see what a student needs to complete and has completed, it would be convenient to copy the student's grades from the earlier Canvas course to the new Canvas course.
This lead to the program:
copy_grades_between_courses.py
Download copy_grades_between_courses.py source_course_id destination_course_id [section_name]
While this program is an early prototype it does do its basic functions - as follows:
- the section name is specified is created if it does not exist
- the equivalent grading standards are determined (by 'title' rather than number). Note that the necessary grading standards have to be created in the destination course in advance (the program does not do this automatically).
- assignments from the source course that do not exist in the destination course are automatically created with the same name, maximum points, description, … [As noted above the destination grading_standard_id will be based on the 'title' (name) corresponding to the source grading-standard_id that was used.]
- students from the source course who are not in the destination course are enrolled in that course in the specified section or a section with the name of the form: "From canvas course source_course_id"
- grades for each of the students in the source course are copied to the corresponding assignment (together with comment)
Note that an obvious improvement is to ensure that the highest grade is always retained.
The program has a "-t" flag that copies only a small number of students and only those with the type StudentEnrollment. This flag is for testing.