Skip to content

feat(admin): 課題に親クラスの状態を表示し、アーカイブ中は「先生には表示されません」と警告する #1132

Description

@smalruby3-editor-bot

EPIC #1129B(課題に親クラスの状態を出す) を担当する leaf。

背景

mapClassroomForAdmininfra/smalruby-admin/lambda/handler.ts:501 付近)は groupId を返すだけで親クラスの status を返さない。そのため課題が active なら Admin は 🟢「利用中」と表示するが、親クラス(ClassroomGroups)が archived だと先生の画面にはその課題は表示されない。運用者が「生きている=先生に見えている」と誤読したのが今回の誤認の直接原因。

やること

  1. Admin API の課題レスポンスに親クラス情報groupId / クラス名 / groupStatus)を含める。GROUPS_TABLE の読み取りを追加し、一覧はバッチ取得で N+1 を避ける。
  2. 課題一覧・詳細に「親クラスがアーカイブ中 — 先生には表示されません」という警告バッジ/注意文を出す。課題単体が active でも実効的に不可視であることが一目で分かること。
  3. restore-admin-alive の文言を、課題が生きている場合親クラスがアーカイブ中の場合で出し分ける。後者では先生に案内すべき正確な操作手順(クラス一覧 → アーカイブ済みのクラス → 元に戻す)を提示する。現状の classrooms-view.jsx:376 の「このクラスはまだ存在しています。アーカイブからの復旧は先生自身のクラス管理画面から行えます。」は親クラスアーカイブ中のケースで誤誘導になる。

前提

先行 leaf #1131 で決めた用語辞典(クラス = Group / 課題 = Classroom)に従って命名・文言を書く。classrooms-view.jsxhandler.ts を共有編集するため #1131 の後に着手する。

スコープ外

  • Admin からのクラス検索・アーカイブ解除(EPIC の C。後続 leaf)

DoD

  • 課題の一覧・詳細で、親クラスがアーカイブ中であることが警告として分かる
  • restore-admin-alive の文言が、課題生存/親クラスアーカイブ中で正しく出し分けられている
  • unit テスト追加(Lambda の親クラス情報付与 + classrooms-view の表示分岐)
  • lint / prettier がエラー 0・警告 0
  • docs/admin/README.md を更新
  • docs/admin/screenshots/ を更新(docs/_screenshot-guidelines.md に従う)
  • 誤認シナリオ(親クラス archived + 課題 active)を作り、Admin 上で「先生には見えていない」と判別できることを確認

Part of #1129

Metadata

Metadata

Assignees

Labels

⏳ waiting先行 Issue (autopilot-after) の完了待ち。依存が Close されると自動着手🤖 autopilotautopilot が処理対象にした Issue/PR(daemon が付与)

Type

No type

Projects

Status
Sprint Backlog

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions