見出し画像

#71 組織内のクラスを一覧にする(詳細版2)

昨日、#58 で紹介したプログラムを機能追加して #70 にしましたが、勢いでもう少し機能追加を行いました。
更に機能追加したファイルも、全体の説明も含めて ↓ の #70 から入手できます。

追加した機能

(3)「課題」と「資料」の最新日時も表示

#70 で「Resource: cources」では直接得られない情報として、最新の「投稿(Announcement)」の日付を表示できるようにしましたが、「課題(CourseWork)」「資料(CourseWorkMaterial)」についても、同様に表示するようにしてみました。

わたしの所属する組織で一覧を作成してみると、「投稿」が利用されていないクラスがいくつも見受けられたので、「課題」「資料」は使われているのかを確認したかった、というのが追加した理由です。
単純に、「投稿」と同様の処理なので、コピペして簡単に追加できるので、勢いで追加したという部分もあります。

「課題」については、権限を有していないユーザーで実行した場合には下図のようなエラーが発生していました。処理が途中で終了してしまわないように、例外処理で下図のようなエラーは無視するようにしてあります。 ※このような場合は、日付が --- となります。

「教師」で参加していなければ、「課題」の情報は取得できない?

これら「投稿」「課題」「資料」を比較するなどして、最新の更新状況の日付を一つだけ表示するといいのかもしれませんが、状況を把握するためにもそれぞれの状況をそのまま表示しています。

(4)ownerId をメールアドレスで表示

以前の #35 でも行っていた処理ですが、列 G「ownerId」を API から得られた内容そのままで表示しているとわかりにくいので、もうひと手間かけて、可能であればメールアドレスとして表示するようにしました。

プログラム的には、以下のような ownerId をメールアドレスに変換する  id2email 関数を追加して、変換して表示するようにしてあります。

追加した id2email 関数

この処理を追加することで、全体の処理にかかる時間が増えることを少しでも減らすために、連想配列を用いて既にメールアドレスに変換した ownerId を ID_TABLE に控えておき、できる範囲で API の実行を減らすようにしています。 ※利用している API は、以下の Google Classroom API

この処理でメールアドレスに変換する際に、「次のエラーが発生し、classroom.userProfiles.get の呼び出しに失敗しました: The caller does not have permission」というエラーが発生するケースがあります。
これは、以下の URL で案内されているようなクラスを作成したアカウントが既に存在していないのだと思います。

(5)一覧から指定したクラスをアーカイブできる

一覧を作成したあと、一覧から必要のないクラスをアーカイブできるようにしました。メニュー項目に、下図のように「カーソル行のクラスをアーカイブ」を追加してあります。

「カーソル行のクラスをアーカイブ」の機能を追加

念のために確認ダイアログを表示して、アーカイブ対象となるクラスを確認した上で処理を行うようにしてあるため、多くのクラスをまとめてアーカイブすることは想定していません。

アーカイブ処理を行った後は、一覧の情報も処理後の内容に更新され、列 K「courseState」の欄は ACTIVE から ARCHIVED に変わります。 ※アーカイブしているだけで、削除は行っていません。

Google が提供している Google Classroom のヘルプ記事を見ていても、組織内で作成できるクラス数どころか、1つのユーザーで作成できるクラスの数については制限が設けられていないように感じられるので、無理にアーカイブすることもないのかな、とも思っています。

ヘルプ記事で説明されている Classroom の制限

最後に

前出の Google が提供しているヘルプ記事では、Google Classroom の作成できるクラスの数については、あまり制限として気にする内容ではないような数に思えます。

結局のところ… 管理コンソールや今回のプログラムを使うことで、組織内に作成されているクラスを把握できるものの、把握して「何をするか?」というところをはっきりさせるべきなんだろうなと思います。

  • クラスには、2名以上の「教師」が参加していること

  • 年度が替わったら、クラスは作り直す

といったルールが決められていたとして、そのルールにどんな意味があって、どこまで徹底しなければならないのか、ということです。

今回のプログラムによって、これらのルールをチェックしやすくなるかとは思いますが、このプログラムでは「教師」に登録されているユーザーの人数を表示しているだけで、登録されているユーザーが先生用アカウントであるかの判断は行っていません。

また、年度ごとに作り直すのは授業を対象にしたクラスで、授業ではない校務利用を目的としたクラスの場合は、年度が替わってもそのまま使い続けるかもしれません。そういった例外事項があると、ルールが厳守されているかのチェックはさらに面倒になります…

今回のプログラムを作成して、管理やルールの難しさを感じました。

この記事が気に入ったらサポートをしてみませんか?