生徒管理システム スクリプトの説明

それぞれの用途に関しては使用者向けドキュメントの方を確認.

tna-system-memo.hatenadiary.com

基本的にタイムトリガー,ボタンに依る呼び出しはなく,すべて上部メニューから機能は使われるようになっている.支援員からの報告を受け取って反映する部分のみ,Formからの受信に対して呼び出されるトリガーが付いている.

main system

aboutGmail.gs

全拠点不参加に依る休講の講師への連絡,一拠点不参加のときの講師への連絡(いまはとまっている),保護者へのメール,エラーを把握するための社員と自分へのメールなど.

aboutUI.gs

メニューに機能を追加することと,それぞれの簡単な質問のやり取りが載っている. すべての生成をするときの確認メッセージ,特定の生成する時になに生成するかの質問,生徒の追加をする際のどれに対して行うかの質問.

addStudent.gs

既存の授業の生徒管理システムに生徒を追加する場合(生徒名簿に追加したところでフォームやシステムには反映されない.)に使用するやつ.addStudent_coreがメイン.その中で,名簿への追加,SSへの追加,生徒への追加を行っている.

createSystem.gs

システムの生成を行う.main()がメイン.createManagementoSystemForAllClasses, createManagementSystemForOneClassはその上でそれを用いている感じ.main関数の中にコメントしてあるがその中で,

function main(class_name, meibo_sheet){
    //meibo_sheetから生徒リストの取得. 全てのデータを取得すると保護者アドレスが入っている場合があるので弾く.
    var class_students = meibo_sheet.getDataRange().getValues()
    for (var i=0; i<class_students.length; i++){
      class_students[i] = class_students[i].slice(0, 2)
    }
    
    //同一の授業名が既存でないかのチェック,既存なら上書き仕様.
    resetClass(class_name)

    //①授業名と生徒リストからフォームを作成
    var class_form = createClassForm(class_name, class_students)

    //②フォームをメインシートに紐付ける.紐付けたシート名を授業名にする.
    connectClassForm(class_name, class_form)

    //③授業名と生徒リストからスプレッドシートを作成し,ssidをデータベースに保存しておく
    var class_ss = createClassSS(class_name, class_students)
    
    //(+)フォームの確認メッセージに作成したスプレッドシートのurlを入れる.
    setMessageToForm(class_form, class_ss)
    
    //④teachers_listに,作成した授業名がなければその枠を新たに作成.
    insertToTeachersList(class_name)
}

receiveAbsent.gs

支援員の報告を受け取る.

function receiveAbsent() {
  
  //①フォーム入力によりActiveとなった授業名の取得,受け取ったアイテムの取得
  var class_name = SpreadsheetApp.getActiveSheet().getSheetName()
  var itemResponses = SpreadsheetApp.getActiveRange().getValues()[0]
  
  //②授業名から日付と生徒名リストについて取得
  var DNList = getDateNameList(class_name)
  
  //③欠席者(複数名も含む)の座標を取得
  var coord = getCoord(itemResponses, DNList)
  
  //④欠席者に対して処理.その後メールが必要であれば送信.
  setcheck(coord, class_name)
}

searchTeacher.gs

月,日,拠点,学年教科を用いて授業管理シートから講師を取得し,classシートからアドレスを取得.

students_list (生徒名簿)

授業シート1枚ずつが各授業になっており,生徒が入っている.

aboutUI.gs

生徒管理システムに不具合を起こさないため,授業シートの追加のみシステムで行っており,授業管理シートのclassシートにきちんと該当する授業があるかのチェックを行っている.

form&ss URL自動収集ツール

まとめサイトのために生成された既存のform&ssを抽出してくるツール.