コンテンツにスキップ

会議グループ詳細

画面概要

特定の会議グループの開催履歴を年度期間ごとに表示する画面。セッション別の参加者・講師・参加時間を確認でき、管理者はセッションの削除や共通情報の編集が可能。

ルート

#/groups/:groupId

ページコンポーネント

GroupDetailPagesrc/pages/GroupDetailPage.jsx

画面レイアウト

会議グループ詳細

表示項目

グループヘッダーカード

# 項目名 説明
1 グループアイコン Users アイコン
2 グループ名 会議グループの名称
3 主催者名 設定されている場合に主催者名を表示
4 セッション数 会議グループに含まれるセッションの総数
5 合計参加時間 全セッションの参加時間合計

設計決定: 主催者の独立エンティティ化(Issue #173)

主催者はメンバーとは別の独立エンティティとする(index.json にトップレベルの organizers 配列)。主催者は組織・チーム等を表す概念であり、個人(メンバー)とは性質が異なるため分離する。1グループにつき主催者は1件のみ(シングルセレクト)で、ID による名寄せが可能な形で管理する。ヘッダーには Building2 アイコンで主催者名を表示する。

期間選択リスト(左カラム)

# 項目名 説明
1 期間ラベル 年度期間の名称
2 セッション数 当該期間のセッション数
3 合計参加時間 当該期間の参加時間合計

設計決定: 期別グルーピングの採用(Issue #108)

メンバー詳細画面と同様の2カラムレイアウト(左:期セレクター、右:セッション一覧)を採用する。画面間の UI の一貫性を確保するため。fiscal-period.jsgetFiscalPeriod() を再利用し、上期(4月〜9月)/下期(10月〜3月)でグルーピングする。

共通情報セクション(右カラム上部)

# 項目名 説明
1 目的 会議グループの目的(テキスト)
2 学習内容 学習内容の記録(テキストエリア)
3 学習成果 学習成果の記録(テキストエリア)
4 参考資料 参考資料のリンク一覧(タイトル + URL)

設計決定: 期単位の共通詳細情報管理(Issue #196)

グループの期単位で共通の詳細情報(目的・学習内容・学習成果・参考資料)を管理する。管理者は admin モードで期を選択した状態で共通情報を編集・保存できる。データは data/group-term-details/{groupId}/{termKey}.json に保存する。レイアウトは PC 幅1280px以上で横スクロールなし、主要操作が1画面内に収まることを受け入れ条件とする。

セッションアコーディオン(右カラム下部)

# 項目名 説明
1 開催日 セッションの開催日
2 セッション名 セッションのタイトル(別名が設定されている場合はそちらを表示)
3 参照 URL セッションの参照 URL(設定されている場合に外部リンクアイコンで表示)
4 講師名 講師として指定されたメンバー名
5 参加者数 セッションの参加者数
6 合計参加時間 セッションの参加時間合計

設計決定: 講師名の表示方式(Issue #162)

講師名はセッション JSON の instructors フィールド(メンバー ULID の配列)から index.jsonmembers を参照して表示する。セッション JSON に講師名を重複保持しない(名前の一元管理)。講師が0名の場合は非表示とする。

設計決定: 外部 URL リンクの表示(Issue #193)

セッションに外部 URL リンク(資料・録画・議事録等)を紐付けられる。URL が設定されている場合のみ ExternalLink アイコンを表示し、target="_blank" + rel="noopener noreferrer" で新しいタブで開く。

セッション展開時の参加者テーブル

# 項目名 説明
1 参加者名 参加メンバーの名前
2 参加時間 メンバーの参加時間

操作仕様

# 操作 振る舞い
1 戻るボタンをクリック 前の画面に戻る
2 期間ボタンをクリック 選択した期間のセッション一覧と共通情報を表示する
3 セッションヘッダーをクリック セッションのアコーディオンを展開/折りたたみする
4 参照 URL をクリック 外部リンクを新しいタブで開く
5 主催者名をクリック 主催者詳細画面(#/organizers/:organizerId)へ遷移する
6 共通情報の編集ボタンをクリック(管理者) 共通情報を編集モードに切り替える
7 共通情報の保存ボタンをクリック(管理者) 編集内容を Blob Storage に保存する
8 セッション削除ボタンをクリック(管理者) セッション削除確認ダイアログを表示する
9 削除確認ダイアログで削除をクリック(管理者) セッションを会議グループから削除する

設計決定: セッション削除の方針(Issue #154)

セッション削除は index.json からの紐付け解除(sessionRevisions から該当 sessionRef を削除)として実装する。セッション JSON ファイル自体は Blob Storage 上に残置する。Azure Blob Storage を追記専用ストレージ(append-only)として運用しているため、ファイル削除は行わない。削除時はグループとメンバーの totalDurationSeconds を再計算し、楽観的ロック(version チェック)でデータ整合性を保つ。

画面遷移

方向 遷移先 条件
ダッシュボード 戻るボタン
主催者詳細 主催者名クリック時

権限

  • 全利用者が閲覧可能
  • 以下は管理者のみ実行可能:
    • 共通情報の編集・保存
    • セッションの削除

関連する業務