From 305ea6d31b8701e39a176120c4aabf72c63eec35 Mon Sep 17 00:00:00 2001 From: BoYanZh Date: Sat, 7 Dec 2024 03:11:42 -0500 Subject: [PATCH] fix(canvas): monkey patch missing login_id --- joint_teapot/workers/canvas.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/joint_teapot/workers/canvas.py b/joint_teapot/workers/canvas.py index 9cf7936..c859322 100644 --- a/joint_teapot/workers/canvas.py +++ b/joint_teapot/workers/canvas.py @@ -4,6 +4,7 @@ from typing import cast from canvasapi import Canvas as PyCanvas from canvasapi.assignment import Assignment +from canvasapi.user import User from patoolib import extract_archive from patoolib.util import PatoolError @@ -30,7 +31,15 @@ class Canvas: logger.info(f"Canvas course loaded. {self.course}") # types = ["student", "observer"] types = ["student"] - self.students = self.course.get_users(enrollment_type=types, include=["email"]) + + def patch_student(student: User) -> User: + student.login_id = student.email.split("@")[0] + return student + + self.students = [ + patch_student(student) + for student in self.course.get_users(enrollment_type=types) + ] for attr in ["login_id", "sortable_name", "name"]: if not hasattr(self.students[0], attr): raise Exception(