MoodleをUser Scriptで使いやすくしたい(京都工芸繊維大学版)

2 min読了の目安(約1800字IDEAアイデア記事

こんにちは!
最近は大学で課題に追われているマンゴーさんです.さて,新型コロナウイルスの影響で,多くの大学でオンラインを主とした授業形態が行われています.そんな中で,よく使われるオンライン授業のサービス/ソフトウェアといえばMoodleが挙げられます.
私の通っている京都工芸繊維大学でも,オンライン授業の教材提供や課題の管理は主にMoodleで行われています.

そんなMoodleですが,いろいろと使っていると不便さを感じることが出てきます.そこで,そういった不便さをUser Scriptを使って解消していこうと思います.

注意: この記事で作成したUser Scriptは京都工芸繊維大学のMoodleに合わせてあります.他大学でも,ForkしてURL指定の部分を変えれば同様に動作するとは思いますが,保証はしません

この記事は,あくあたん工房クリスマスアドベントカレンダー3日目の記事です.

授業ごとのセクションを開閉できるようにする

Moodleでは,科目のページを開くと,複数の授業が古いものから順に表示されるようになっています.アナウンス→1回目→…→試験の案内といった順番です.問題は,授業の回数を重ねるごとに,縦に長くなっていくので,スクロールが面倒ということです.えらく記載してある文章が長いことや,毎回同じようなコンテンツで見間違いやすいという問題もあります.

そこで,各授業ごとのセクションを,summary/detailsタグで開閉できるようなUser Scriptを作成しました.このスクリプトでは,開閉の状態をlocalStorageに保存もしています.

スクリプト: KIT Moodle utils

余談ですが,この時は一つのScriptに多くの機能をまとめようとしていたので,何とも微妙な名前になっています.

スクリプトの処理は単純で,localStorageに開いているセクションのindexを保存・読み出しすることと,もともとのセクションの内容をcloneNode(true)で複製(deep clone)して,新しいdetails/summaryタグに移し替えているだけです.

不要な科目をマイコースのツリーから消し去る

これは大学によって違うところも多いと思いますが,弊大学では一度登録したコースや,前期のコースは後期になったあとに登録解除できないことが多いです.なので,後期にもなると,自分の取っている科目のコースが,すでに終わった科目に埋もれて見つけにくくなります.そこで,終了したコースを「マイコース」のツリーから消し去って,ダッシュボードでも見にくいようにするUser Scriptを作成しました.

スクリプト: KIT Moodle subject hide tool

このスクリプトは,ダッシュボードのページで非表示にする科目を切り替えることができます.ダッシュボードでは,その科目のリンクの色が薄くなって,他と一目瞭然判別できます.また,マイコースのツリーからその科目が消えます.

マイコースのツリーから消去するのは,CSSのセレクタをうまく使うことで,ページの変更を監視して消去するよりも確実かつ効率よく消去できるようにしています.

まとめ

User Scriptは何をするにも便利です.ブラウザ拡張より手軽で配布もしやすいです(Chrome Web Storeは審査がめんどくさい).
大学のシステムは,どういうわけか使いにくいものが多いので,うまく使いやすくしてあげてください.