From 082169ed1b86fda8afe9822cfbba8642cfee9972 Mon Sep 17 00:00:00 2001 From: arthurcai Date: Fri, 19 Sep 2025 19:39:40 +0800 Subject: [PATCH] fix: changed canvas api login_id --- joint_teapot/workers/canvas.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/joint_teapot/workers/canvas.py b/joint_teapot/workers/canvas.py index 641b8af..2ba1782 100644 --- a/joint_teapot/workers/canvas.py +++ b/joint_teapot/workers/canvas.py @@ -39,8 +39,19 @@ class Canvas: student.name = ( re.sub(r"[^\x00-\x7F]+", "", student.name).strip().title() ) # We only care english name - student.sis_id = student.login_id - student.login_id = student.email.split("@")[0] + # Some users (like system users, announcers) might not have login_id + if hasattr(student, 'login_id') and student.login_id: + student.sis_id = student.login_id + student.login_id = student.email.split("@")[0] + else: + # For users without login_id, use email prefix as both sis_id and login_id + if hasattr(student, 'email') and student.email: + student.login_id = student.email.split("@")[0] + student.sis_id = student.login_id + else: + # Fallback for users without email + student.login_id = f"user_{student.id}" + student.sis_id = student.login_id return student self.students = [