メインコンテンツまでスキップ

書類定義 — DocumentType / DocumentApprovalStage

これは何か

「このイベントではどんな書類を・いつまでに・どのように審査するか」を定義するものです。

大学祭では参加サークルに様々な書類の提出を求めます。食品を扱う模擬店は衛生管理書類、電気を使う企画は電気工作計画書、すべての参加者は参加申込書、といった具合です。

書類の審査には複数の段階(ステージ)を設けることができます。「1段階目:サークルリーダーが確認 → 2段階目:担当運営スタッフが最終承認」のように、誰が何段階で確認するかを定義できます。

登場する概念

DocumentType(書類の定義) 「何を提出すべきか」を定義します。書類名・説明・提出期限・必須かどうか・許可するファイル形式などを設定します。

DocumentApprovalStage(承認ステージ) 「どの段階で誰が審査するか」を定義します。DocumentTypeに対して複数のステージを設定できます。

書類の提出形式

書類はファイルのアップロードとテキスト入力の2種類に対応しています。

  • ファイル提出:PDFやWordなど、許可された形式のファイルをアップロードする
  • テキスト提出(acceptsFreetext = true):テキストボックスに文字を入力する

期限を過ぎた提出への対応

lateSubmissionPolicy で設定します。

設定意味
NONE期限後の提出を一切受け付けない
RESUBMISSION_ONLY初回提出は期限内のみ。差し替え(再提出)は期限後でも受け付ける
ALL初回・再提出ともに期限後でも受け付ける

誰が使うか

  • 運営スタッフ:書類の定義と承認ステージを作成・管理する
  • サークル:何を提出しなければならないかを確認する(読むだけ)

できなければならないこと

  • 運営スタッフがイベントに書類定義を作成できる(名前・説明・期限・必須かどうかなどを設定)
  • 運営スタッフが書類定義に承認ステージを追加できる(何段階で・誰が審査するかを定義)
  • 運営スタッフが承認ステージの順序を変更できる
  • 運営スタッフが書類定義を非アクティブ(isActive = false)にして一時的に非表示にできる
  • 運営スタッフが書類定義の詳細(期限・説明・期限後ポリシーなど)を変更できる
  • サークルが自分のイベントの必要書類一覧を確認できる

できてはいけないこと

  • 提出済みの書類がある書類定義を削除すること(過去の提出記録が消える)
  • approvalStageCount と実際に登録された承認ステージ数が一致しない状態にすること
  • サークルが書類定義を作成・変更すること
  • isRequired = true の書類がある場合、サークルはその書類を提出せずにチェックアウトや他の手続きを進めてはならない(アプリ層での制御が必要)