コンテンツにスキップ

2026-09-25 合意したモックの実装

ユーザーが tools/spec-20260925-preview/ を試用し、「OK、これを実装してください」と依頼した範囲。その後の「本番にも実装して」という依頼に基づき、2026-09-25 17:08 JSTに本番反映を完了。577テストと公開サイトの正常応答を確認した。配備記録は docs/deployment-spec-2026-09-25.md。

実装した動作

  • 保護者キオスクの園児選択は、既存の2列/4列の構成を維持。名前を22〜32pxに拡大し、名前ボタン内の出欠状態表示を削除。タブレットではボタンの最低高を62pxに調整。20人程度を最初の画面に表示し、それ以上は通常のスクロールで扱う。
  • 名前一覧の園児ポップアップに「メモを書く」「記録を見る」を追加。既存の子どもの記録フォームと時系列画面へ移動する。
  • 新規メモの初期値は「自分だけ」。本人だけが閲覧・訂正・無効化でき、他職員と管理者には表示しない。「みんなで共有」は担当クラスに関係なく職員が閲覧できる。
  • 管理者は取扱注意の共有先を職員単位で指定できる。本人・管理者・指定職員だけが閲覧可能。共有記録の訂正・無効化は本人または管理者。既存の「閲覧のみ」権限と児童票の作成権限は維持する。
  • 園で設定した既存入力項目、日付、分類、視点、独自項目を維持。保存は明示操作。未保存の移動・無効化は確認画面を表示し、取消で入力を継続する。保存失敗時は入力を保持する。
  • 訂正・無効化の理由、操作者、日時、変更前の内容と共有範囲を履歴に保存。無効化済み記録は通常一覧から除外し、チェックで表示できる。現在の記録を共有に変えても、変更前の個人メモや当時の限定共有内容を権限外の人へ公開しない。
  • 個人メモ・限定共有は、閲覧範囲の広い児童票の参照候補に出さない。
  • 出欠は初回の4状態すべてが未選択。初回は理由画面を一度も出さず保存し、アラームがあっても同じ動作。「不明」でも初回は保護者通知を送らない。
  • 選択済み状態から別の状態へ変更するときだけ理由を必須にする。「誤入力」「変更連絡あり」は理由の入力を補助し、確定ボタンで保存する。同じ状態の再選択は変更・履歴・通知を発生させない。取消・Escでは元の状態を保つ。
  • 変更を保存した後も詳細は閉じたまま。「詳細」ボタンを押したときだけ開く。ログイン中の操作者・日時・変更前後・理由を保存する。

既存データと移行

child_observation_logs に nullable の visibility VARCHAR と shared_staff_ids JSON の2列を追加。既存行のNULLは従来の閲覧範囲(担当・記録管理権限・管理者、取扱注意は管理者)として扱い、自動的に全職員へ共有しない。既存記録の訂正フォームでは「従来の共有範囲を保つ」を選択できる。

起動時のSQLite移行は追加のみで再実行可能。旧バックアップの復元では隔離コピーにだけ列を追加し、元のバックアップを変更しない。部分的な列追加や共有を既定にする未知のスキーマは承認済み移行として受け入れない。

配備基準は docs/deployment-spec-2026-09-24.md の稼働commit 79bd070a720f9546558a768026567f72168edd10。今回以外の開発中変更が同じ作業ツリーにあるため、配備時はこれらを混ぜず、本番機能を保持して差分を選定する。

確認

ブラウザー検証は tools/spec_20260925_browser_fixture.py の架空データ・メモリーDBのみで実施。本番DBと送信処理には接続していない。

  • 初回保存で理由画面が出ないこと、変更理由の確定後に詳細が閉じたままであること、明示的な詳細表示で履歴を読めること。
  • 名前一覧からメモ入力への移動、日付エラー時の入力保持、未保存の移動取消、保存、限定共有への訂正、無効化の取消。
  • 1024×768、768×1024、1280×800、800×1280で20名すべてを表示し、ページの縦スクロール・横はみ出しなし。390px幅の記録フォームで横はみ出しなし。ブラウザーのJavaScriptエラーなし。
  • サーバーテストは全16組の状態再選択/変更、初回4状態、権限違反の直接アクセス、個人メモの履歴、既存記録、児童票権限、保存検証、無効化、移行とバックアップ互換性を含む。

実行対象:test_child_records.py、test_attendance_checks.py、test_spec_changes_20260917.py、test_spec_changes_20260919.py、test_spec_changes_20260924.py、test_spec_changes_20260925.py、test_spec_changes_restore_20260924.py、test_spec_changes_restore_20260925.py、test_guardian_kiosk.py、test_guardian_terminal.py、test_restore_runtime.py。

上記155テストすべて成功(2026-09-25、最終実行172.75秒)。変更したPythonのruffチェック、3つのJavaScriptファイルの構文チェック、差分の空白検査も成功。