CSVファイルでコースから登録ユーザを解除する方法について

CSVファイルでコースから登録ユーザを解除する方法について

K Y發表於
Number of replies: 6

皆様

お世話になっております。

わからないことがあり、質問させていただきます。


CSVを使用してユーザの一括登録、更新を行う際に、

既存ユーザからコース登録を解除する方法をご教示いただけますでしょうか。


例えばA,B,Cの3コースに登録済のユーザが複数名いたとして、全員Cコースのみ解除したい場合に

CSVを使用して一括で処理する方法はありますでしょうか。


Moodleのバージョンは2.5です。

よろしくお願い致します


評比平均分數: -
In reply to K Y

Re: CSVファイルでコースから登録ユーザを解除する方法について

Mitsuhiro Yoshida發表於
Developers的相片 Particularly helpful Moodlers的相片 Translators的相片
  1. 「管理 > サイト管理 > プラグイン > 登録 > 登録プラグイン管理」ページで「フラットファイル (CSV)」を有効にしてください (閉じた目のアイコンをクリックします)。
  2. 利用可能なコース登録プラグインの「フラットファイル (CSV)」の右側にあります「設定」をクリックしてください。
  3. 「外部登録解除処理 enrol_flatfile | unenrolaction」プルダウンメニューで「コースからユーザを登録解除する」を選択してください。
  4. ページ下部の「変更を保存する」ボタンをクリックしてください。
  5. 「管理 > サイト管理 > プラグイン > 登録 >フラットファイル (CSV)」の説明を参考にして、コースから登録解除したいユーザを含む登録解除用のテキストファイルを作成してください。
  6. 5.で作成したテキストファイルを「ファイルロケーション enrol_flatfile | location」の場所に置いてください。

上記処理は煩雑になりますので、テキストファイルを使用してユーザを登録解除するのではなく、コースページ内の「管理 > コース管理 > バックアップ」で「登録済みユーザを含む」のチェックをはずしてバックアップされた上で、新しいコースとしてリストアされても宜しいかと思います。

In reply to Mitsuhiro Yoshida

Re: CSVファイルでコースから登録ユーザを解除する方法について

K Y發表於

Yoshida様


お世話になっております。

返信遅くなり申し訳ございません。


ご回答いただき有難うございます。

1~6の手順を試しましたが、コースの登録解除ができないので以下3つを質問させてください。

①5.の登録解除用のテキストファイルのファイルの種類はカンマ区切り(.csv)でよろしかったでしょうか。

②6.のファイルロケーションにはmoodleをインストールしたPC(サーバ機)のローカルフォルダを指定するという認識でよろしいでしょうか。

③6の手順実施後、「変更を保存する」ボタンをクリックでコースの登録解除が行われるのでしょうか。


よろしくお願い申し上げます。


In reply to K Y

Re: CSVファイルでコースから登録ユーザを解除する方法について

Mitsuhiro Yoshida發表於
Developers的相片 Particularly helpful Moodlers的相片 Translators的相片

> ①5.の登録解除用のテキストファイルのファイルの種類はカンマ区切り(.csv)でよろしかったでしょうか。

はい、そうです。

> ②6.のファイルロケーションにはmoodleをインストールしたPC(サーバ機)のローカルフォルダを指定するという認識でよろしいでしょうか。

はい、そうです。
例えば、/var/www/moodledata/enrolments.txtのようになります。

> ③6の手順実施後、「変更を保存する」ボタンをクリックでコースの登録解除が行われるのでしょうか。

いいえ、admin/cron.phpが実行されるタイミングでコースから登録解除されます。

ご参考までに下記ドキュメントをご覧ください。

[Flat file - MoodleDocs]
https://docs.moodle.org/26/en/Flat_file

In reply to Mitsuhiro Yoshida

Re: CSVファイルでコースから登録ユーザを解除する方法について

K Y發表於

Yoshida様


お世話になっております。

ご教示いただいた方法を確認いたしますが、

そもそもIDnumberをコース・ユーザに対して采番されていなければ、本手順にて対応はできなさそうですね。

コース解除については、コース設定メニューからチェックをつけて手動で解除を行うか、

ユーザを一度削除した上で再度コース登録で対応したいと思います。


お忙しいところご回答いただき、有難うございました。


In reply to K Y

Re: CSVファイルでコースから登録ユーザを解除する方法について

Mitsuhiro Yoshida發表於
Developers的相片 Particularly helpful Moodlers的相片 Translators的相片
下記のようにプログラムを修正することで、「del, student, user001, TD001」(削除, 学生, ユーザ名, コース省略名) のような削除用ファイルを作成してユーザをコースから一括受講登録解除することはできます。
間違って削除してしまった場合の対応のため、ユーザの一括受講登録解除の前にコースデータをバックアップしてください。

修正対象プログラム:
enrol/flatfile/lib.php

修正箇所:
314行目

[ 修正前 ]
                if (empty($fields[2]) or !$user = $DB->get_record("user", array("idnumber"=>$fields[2], 'deleted'=>0))) {
                    $trace->output("Unknown user idnumber or deleted user in field 3 - ignoring line $line", 1);
                    continue;
                }

                if (!$course = $DB->get_record("course", array("idnumber"=>$fields[3]))) {
                    $trace->output("Unknown course idnumber in field 4 - ignoring line $line", 1);
                    continue;
                }

[ 修正後 ]
//                if (empty($fields[2]) or !$user = $DB->get_record("user", array("idnumber"=>$fields[2], 'deleted'=>0))) {
                if (empty($fields[2]) or !$user = $DB->get_record("user", array("username"=>$fields[2], 'deleted'=>0))) {
//                    $trace->output("Unknown user idnumber or deleted user in field 3 - ignoring line $line", 1);
                    $trace->output("Unknown user username or deleted user in field 3 - ignoring line $line", 1);
                    continue;
                }

//                if (!$course = $DB->get_record("course", array("idnumber"=>$fields[3]))) {
                if (!$course = $DB->get_record("course", array("shortname"=>$fields[3]))) {
//                    $trace->output("Unknown course idnumber in field 4 - ignoring line $line", 1);
                    $trace->output("Unknown course shortname in field 4 - ignoring line $line", 1);
                    continue;
                }

In reply to Mitsuhiro Yoshida

Re: CSVファイルでコースから登録ユーザを解除する方法について

K Y發表於

Yoshida様


いつもお世話になっております。

返信が遅くなり申し訳ございません。

プログラムの修正は諸事情によりまだ実施できておりませんが、ご教示いただきありがとうございました。