Skip to content

Commit 279d595

Browse files
committed
v0.6.18: fix 401 on Refresh — flush credentials before loading
- _do_refresh now writes canvas_url + canvas token from _v dict to DATA_DIR files before calling _load_courses_from_canvas, so the user does not need to click Save All before Refresh - Clearer 401 error message with Canvas token regeneration instructions - Tested end-to-end: type URL + token → Refresh → 4 courses loaded
1 parent 805cf13 commit 279d595

1 file changed

Lines changed: 13 additions & 0 deletions

File tree

gui.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ def _load_courses_from_canvas() -> str:
7373
params={"enrollment_state": "active", "per_page": 100},
7474
timeout=10,
7575
)
76+
if resp.status_code == 401:
77+
return "401 Unauthorized — Canvas token is invalid or expired. Generate a new one in Canvas → Account → Settings → New Access Token."
7678
resp.raise_for_status()
7779
for c in resp.json():
7880
name = c.get("name") or c.get("course_code") or ""
@@ -1144,6 +1146,17 @@ def _do_refresh():
11441146
refresh_status.value = "Refreshing…"
11451147
refresh_status.color = ft.Colors.with_opacity(0.6, ft.Colors.WHITE)
11461148
page.update()
1149+
# Flush current credentials to disk before loading, so the user doesn't
1150+
# need to click "Save All" first — whatever is typed right now is used.
1151+
try:
1152+
_save_config_all({
1153+
"CANVAS_URL": _v["canvas_url"].strip(),
1154+
"PANOPTO_HOST": _v["panopto"].strip(),
1155+
})
1156+
if _v["canvas"].strip():
1157+
canvas_file.write_text(_v["canvas"].strip())
1158+
except Exception:
1159+
pass
11471160
err = _load_courses_from_canvas()
11481161
n = len(COURSES)
11491162
if n:

0 commit comments

Comments
 (0)