コンテンツにスキップ

2026年9月11日 仕様変更の反映

9月11日の仕様変更書について確認した16項目を反映する。既存機能との境界は以下のとおり。

対象 反映内容
文書の確認依頼 Word・PDF・Excel・画像・テキストを添付、または本文を入力して管理者へ提出する。管理者ホームの承認待ちへ表示。提出者と管理者だけが閲覧・ダウンロードできる。提出後は変更せず、修正版は新規依頼とする。添付は5件、各10MB、合計20MBまで。
タイムライン 通常リンクはページ全体、HTMXは部分HTMLを返す。投稿・返信のURLをエスケープを保ったままリンク化する。
端末監視 署名付きKIOSK端末識別子で30秒ごとの応答を保存。2分を超える無応答を管理者ホームへ警告する。初期監視時間は日本時間7〜19時。管理者が端末名・時間・有効無効を設定できる。ネットワーク断、スリープ、画面を閉じた状態は区別しない。
家族検索 家族名・園児名・園児のフリガナ・保護者名で絞り込む。
職員ホーム 一般職員も担当/全クラスのサマリーを切り替えられる。一般職員の初期表示は担当。要確認の園児別明細や編集権限は既存の制御に従う。
KIOSKの表示 確認内容を24pxに拡大。入力操作を既存打刻情報より上へ移動し、16・17・18時を先頭に高さ80px以上で表示する。他の時間も選択できる。
誤打刻の取消 編集可能な職員が、降園のみ/登園・降園・お迎え予定を取消。元の記録と料金、操作職員、理由、日時を監査履歴に保存する。未確定の延長料金は削除して次回降園時に再計算。確定・調整・対象外・請求転送済みの料金は取消を拒否する。同時更新と二重操作は旧画面の更新番号で検出する。独立した「保護者連絡なし」等のアラームは残る。
今日の予定 閲覧権限のある接続カレンダーの確定予定を全件表示。カレンダー画面の表示OFF設定も含む。仮予定・取消予定・アーカイブ済みカレンダーは含まない。「次の予定」から終日予定を除外する。
園児一覧 初期の並び順を生年月日降順(年齢の低い園児から)に変更する。
共通QRの承認 承認時は承認先選択を必須とする。サーバー検証エラーは入力理由・承認先・確認チェックを保持して画面内に表示する。却下時は承認先を必須にしない。
通知の併用 既存の出欠確認依頼に、保護者が任意で有効化するメール通知を追加。プッシュとの併用、メールのみの受信に対応する。既存アカウントのメール設定はOFF。登録済みのメール配送キュー・再試行・履歴を使用し、送信前に受信設定、アカウント状態、宛先、園児への閲覧許可、有効期限を再確認する。メールの期限は既存の出欠確認プッシュと同じ。お知らせ・アンケート等の新規自動通知は対象外。
きょうだい選択 家族で候補を絞り込み、明示的な「この家族の園児をまとめて選択」で選べる。保存済みの別家族のチェックも表示する。家族変更だけで閲覧権限を増やさない。
期限切れアンケート 保護者・職員の回答画面は受付期間外のHTML案内を返す。締切後の回答更新は許可しない。管理者による設問編集の権限・期間制限は変更しない。

データと配備

追加テーブルは attendance_corrections、document_review_requests、guardian_terminal_status、parent_email_preferences、parent_notification_emails の5件。既存テーブルの列変更はなく、通常の起動処理で作成される。添付は既存の永続化対象である storage/document_reviews/ に保存する。

実機更新は、稼働中のソース・構成の一致確認、DBコピーを使ったネットワークなしの起動検証、停止中のDBバックアップとZFSスナップショット、更新後の既存レコード照合とヘルスチェックを行う。SMTP、認証、通知、公開URL等の設定は保持する。新しい通知設定の初期値はOFFのため、配備時の検証で保護者への実メール・プッシュを送信しない。

検証

  • 全体テスト653件成功。その後追加・更新したQR承認・アンケート・Push APIの54件、外部キー制約を有効にした新機能13件、KIOSK6件も成功。
  • Ruff、git diff --check 成功。
  • tools/test-spec-20260911-browser.cjs により架空データを用いて専用KIOSKを390/768/1280pxで検証。入力・確認画面、通常スレッド、家族検索、きょうだい一括選択、確認依頼の提出、取消履歴、端末設定保存を確認。新しいフォームのCSRF検証を有効化し、ブラウザーのJavaScriptエラーなし。
  • SMTP配送はcapture方式で検証。実際の保護者への送信や物理タブレットの通信切断試験は行わない。