授業管理シート内スクリプト 現時点での引継ぎ
追記 (8.30)
いくつかコードの整理を行った. tna-system-memo.hatenadiary.com
コードの整理後改めてドキュメント書いた
tna-system-memo.hatenadiary.com
はじめに
関数の呼ばれ方
他の関数から呼ばれてもいない関数はどこから呼ばれているのか. 関数が隠れている場所の見つけ方.
大きくわけてタイプは以下の3つ.
- ボタン: 右クリックメニューで紐づけされている.
- 上部メニューをプログラムから生成: "aboutUI.gs"プログラムで紐づけ.
- タイムトリガー: 紐付けられているアカウントでしか確認できないことに注意.
スクリプトのある場所
授業管理シートとかの上部メニュー「ツール」 > 「スクリプトエディタ」
以下,現時点でのプロジェクト別にそれぞれの関数の説明.
「Manage」
(>>「Database」という名前に変更したい.)
授業管理シート自体の管理のためのスクリプト.データベースを管理するためのスクリプト.データの出し入れを扱う.
管理として以下の4つに大別される.
- シートの新規作成
- 授業の追加
- 授業の変更: 代講.
- 授業の削除: (実際に消す,という処理はしない.)休講/直前キャンセルのセッティング.
code.gs
最下部に記述,そちらを参照.
CreateMonthSheet.gs
- 月次シート作成
- 紐づけ: aboutUIで上部メニューに挿入.
AddClass.gs
- 作成済み月次シートの授業の追加
- 紐づけ: aboutUIで上部メニューに挿入.
ChangeTeacher.gs
- 代講
- 紐づけ: ボタン
実際は代講用のSSが判断してやってる.
setKyuukou.gs
- 休講のセッティング
- 紐づけ: aboutUIで上部メニューに挿入.
「Search」
授業管理シート以外のSSに接続する必要のある検索用のスクリプト
DailyReport.gs
- 授業レポート閲覧用
- 紐づけ: ボタン
Alternative.gs
- 代講依頼閲覧用
- 紐づけ: ボタン
「Tools」
便利機能のためのスクリプト
confirm_myclasses.gs
- 「シフト確認シート」用スクリプト
- 紐づけ: ボタン
createReport.gs
- レポート記入する際に管理シートから判断できる内容については自動で入力できる便利機能.
- 紐づけ: ボタン
displayRobot.gs
- ロボットチームに頼まれて作成したスクリプト
- 紐づけ: aboutUIで上部メニューに挿入.
Manage/code.gsについて
まだ整理しきれていないコード.必要な物,不要なものが混在する. 丁寧に切り分けていく.
また,整理の際に削除した関数は以下.丁寧に切り分けたが,なにか起こってしまったら少しここを疑うこと.確認した上で必要だったら去年のやつからコピペで戻す.
- makeReport
- samplealert
- ClassConfirmOffPost
- weeklyReport: facebook投稿もうしなくなったらしいので.
- alertToMakeWeeklyReport
- transportbreak: これ以下の方全て重要そうだがどこでも使ってなさそうで消してしもた.
- TransportPlaceCheck
- TransportRequest
- TransportRequestDelete
- transportCheck
checkdailyreport
紐づけ: タイムトリガー by tnal.teachersアカウント
今日の日付までで、授業レポートが提出されているか確認する。
- N列目に[未記入][記入済み]入れる謎の関数.N列目を見ているプログラムはない気が.
- 挙動的にはI列を使うわけでもなく,ans_ssからわざわざとってきている
N列目を使用しているものがなければ削除してもいい. 【経理の方がN列目を閲覧している可能性あり】
makedailyreport >> 「Tools」プロジェクトに移動予定
「各所レポート作成」
挙動としては授業管理シートの'daiyReport'というシートに報告を穴埋めして,複製,シート名をつける.'dailyReport'を最後にクリア
- 経理さんが月に一度使用
- 紐づけ: aboutUIで上部メニューに挿入.
daylyMail >> 「Reminder」プロジェクトに移動予定
何故か伝統的にスペルが間違っているスクリプト.なぜかは知らないが訂正しない.
- 朝の授業リマインド
- 紐づけ: タイムトリガー by tna.reminderアカウント
alertMail >> 「Reminder」プロジェクトに移動予定
- angry bot
- 紐づけ: タイムトリガー by tna.angryアカウント
ReportCheck >> 「Reminder」プロジェクトに移動予定
- スタッフ講師の拠点リーダーに毎日レポートを送信しているぽい.必要?
- 紐づけ: タイムトリガー by tna.teachersアカウント
gridLine >> 月次シート作成のところに移動予定.
- 枠線表示のプログラム(毎日更新用)
- 紐づけ: タイムトリガー by tna.teachersアカウント
- 【正直タイムトリガーである必要はないと思われる.崩れてるときに上部メニューから使用だけでよい.】
gridLine2 >> 月次シートのところに移動予定.
- 枠線表示のプログラム(月次シート作成のときに呼ばれる.)
fill_in_the_Blanks >> 代講のところに移動予定.
- Q列の教室分類を書き込む
- 紐づけ: タイムトリガー by tna.teachersアカウント
Q列は,代講の場所のチェックで重複がないか確認するために使用している.
コードを増やす際の注意.
基本的におこなう内容によって,カテゴリ別に プロジェクト を分けて管理してほしい.どこに何があるのか引き継いでいくシステム担当の人がわからんくなる.
その中で機能ごとに ファイル を分けてほしい.イメージとしては1つのファイルに1説明つくような感じ.
その1つのファイル内でも1関数でごちゃごちゃ書くんじゃなくて,同じ処理はまとめて 関数 にするとか,関数にすることで1つの意味付け,名前付けするとかにしてほしい.
最終的にはなにか探したいときにツリー状に迷わず探しに行ける感じの雰囲気の構成を目標にするイメージ.