Summary
教師が作品を返却したとき、生徒側に返却状態とコメントを表示する。
Parent: #442
背景
PR #446 で教師がコメント付きで作品を返却する機能を実装した(PATCH /submissions/{id})。しかし、生徒側では返却されたことを知る手段がない。
現在の生徒の submissionStatus は Redux + localStorage にローカル保持されており、サーバー側の状態変化(submitted → returned)は反映されない。
実装方針
生徒がモーダルを開いたときにサーバーから状態取得
student-status フェーズの表示時に、サーバーから最新の提出状態を取得する。
案 A: verify-session のレスポンスを拡張(推奨)
既存の POST /classrooms/verify-session はセッションの有効性を確認するだけ。レスポンスに提出状態を含める:
{
"valid": true,
"submission": {
"status": "returned",
"teacherComment": "よくできました!",
"submittedAt": "2026-04-04T23:48:51.000Z"
}
}
- Lambda:
handleVerifySession で SubmissionsTable を検索し、最新の提出情報を返す
- フロントエンド:
student-status 表示時に verifySession のレスポンスから提出状態を更新
案 B: 新 API エンドポイント
GET /classrooms/{classroomId}/submissions/me — sessionToken 認証で自分の提出を取得。シンプルだが新ルート追加が必要。
生徒 UI の変更
student-status 画面の提出状態表示を拡張:
未提出: 提出: 未提出 [提出する]
提出済み: 提出: ✓ 提出済み 23:48 [再提出する]
返却済み: 提出: ↩ 返却済み 23:48 [再提出する]
コメント: よくできました!
変更ファイル
infra/smalruby-classroom/lambda/handler.ts — verify-session レスポンス拡張
packages/scratch-gui/src/containers/classroom-modal.jsx — 提出状態のサーバー取得
packages/scratch-gui/src/components/classroom-modal/classroom-modal.jsx — 返却済み + コメント表示
packages/scratch-gui/src/reducers/classroom.js — submissionStatus に 'returned' 対応
packages/scratch-gui/src/locales/{ja,ja-Hira,en}.js — i18n キー追加
data-testid
| data-testid |
要素 |
説明 |
classroom-status-returned |
span |
返却済みステータス |
classroom-status-teacher-comment |
div |
教師コメント表示 |
Summary
教師が作品を返却したとき、生徒側に返却状態とコメントを表示する。
Parent: #442
背景
PR #446 で教師がコメント付きで作品を返却する機能を実装した(PATCH /submissions/{id})。しかし、生徒側では返却されたことを知る手段がない。
現在の生徒の
submissionStatusは Redux + localStorage にローカル保持されており、サーバー側の状態変化(submitted→returned)は反映されない。実装方針
生徒がモーダルを開いたときにサーバーから状態取得
student-statusフェーズの表示時に、サーバーから最新の提出状態を取得する。案 A: verify-session のレスポンスを拡張(推奨)
既存の
POST /classrooms/verify-sessionはセッションの有効性を確認するだけ。レスポンスに提出状態を含める:{ "valid": true, "submission": { "status": "returned", "teacherComment": "よくできました!", "submittedAt": "2026-04-04T23:48:51.000Z" } }handleVerifySessionで SubmissionsTable を検索し、最新の提出情報を返すstudent-status表示時にverifySessionのレスポンスから提出状態を更新案 B: 新 API エンドポイント
GET /classrooms/{classroomId}/submissions/me— sessionToken 認証で自分の提出を取得。シンプルだが新ルート追加が必要。生徒 UI の変更
student-status画面の提出状態表示を拡張:変更ファイル
infra/smalruby-classroom/lambda/handler.ts— verify-session レスポンス拡張packages/scratch-gui/src/containers/classroom-modal.jsx— 提出状態のサーバー取得packages/scratch-gui/src/components/classroom-modal/classroom-modal.jsx— 返却済み + コメント表示packages/scratch-gui/src/reducers/classroom.js— submissionStatus に 'returned' 対応packages/scratch-gui/src/locales/{ja,ja-Hira,en}.js— i18n キー追加data-testid
classroom-status-returnedclassroom-status-teacher-comment