保護者のお知らせを未読優先・日時順に表示
2026-09-27。ユーザーはモックを確認し「未読が優先です」と指定した後、「本番に反映して」と依頼した。
合意した動作
- 保護者ホームの新着欄と、ホームから開くお知らせ一覧に適用する。
- 未読を先に表示し、未読・既読の各グループ内では日時の新しい順に並べる。
- 出欠確認を別枠として先頭にまとめず、通常のお知らせと混ぜる。
- 重要マーク、本文、既読・未読表示、詳細へのリンクを保持する。
- 日時は通常のお知らせの公開開始日時(未設定なら作成日時)、出欠確認の作成日時を使う。
- 詳細を開いて既読になる既存動作を保持。既読日時を並び替えには使わない。
- ホームの最大5件、一覧の全件表示、公開範囲・公開期間・家庭の権限を保持する。
- 未回答アンケートは従来どおりホームと未読・未回答画面に含め、未読相当のグループ内で公開日時順に並べる。お知らせ一覧には追加しない。
実装
routers/parent_portal.py の共通取得処理で未読状態と日時を使って整列する。
一覧も同じ取得処理を使い、templates/parent_portal/notices.html で整列済みの項目を1回のループで描画する。
各種カードの見た目を保持し、モック用の設定UIは含めない。
DBスキーマ、既読保存処理、通知送信処理は変更しない。
検証
- 最新本番commit
c907275b94cabcb613b4cf2a8edf778c05ade8ddから作成した専用コピーで40テスト成功(11.51秒、失敗・スキップ・収集エラーなし)。 - 対象:
test_parent_notice_order.py、test_parent_portal.py、test_notices.py。 - 新旧の出欠確認と通常のお知らせ、既読・未読、重要度、全件既読/全件未読、閲覧後の移動、ホーム5件、公開日時、アンケートの日本時間を検証。
- 本番用の読み取り専用検査を架空の2アカウント・6画面で実行し、DB全体のdumpが検査前後で完全一致。
- 配備手順の8テストがローカルと実機の両方で成功。
- 配備用commit
51ddae0ad1ff641310fdd4edb22f369385d0f45b。本番基準との差分は実装2ファイルと回帰テスト1ファイルだけ。
2026-09-27 05:52:08 JSTに本番反映完了。実機でも40テストと保護者8アカウント・24画面の読み取り専用検査が成功し、公開HTTPSのHTTP 200を確認した。
配備結果は docs/deployment-parent-notice-order-2026-09-27.md に記録した。