課題モジュールで提出物一覧が表示されない問題について

課題モジュールで提出物一覧が表示されない問題について

- Hidehiro Nakajima の投稿
返信数: 24
皆様、いつもお世話になっております。
Moodle初心者です。

三重大学版の1.9を拝借して利用しております。
課題モジュールですが、学生からの提出はできるのですが、教師の画面で「xx件の提出課題を確認する」のリンク先が、まっしろの画面しか表示されないという問い合わせがありました。
オンラインテキストや、単一ファイルのアップロードなど、課題の種類を問わず、学生からの提出は問題なし・教師画面はまっしろという状況です。

調べているのですが、原因がわからず、お心当たりの方がおりましたら、お知恵を拝借したく存じます。

どうぞよろしくお願いいたします。
Hidehiro Nakajima への返信

Re: 課題モジュールで提出物一覧が表示されない問題について

- Haruhiko Okumura の投稿
はてはて,どうしてでしょうね。

自由に使えるようにしてある ここ のaltコースは三重大版1.9の最新のものですが,特に問題ないように見えます。

たまたまバグの入ったバージョン(というものがあったのかどうかわかりませんが)をダウンロードされたということもあるかもしれませんので,最新のものに更新されるというのが一つの手段で,もう一つはサーバの error_log ファイルを見る(あるいは同じことですが php.ini で display_errors = On にする)ことによってエラーメッセージを調べてご報告いただくという手段がありそうです。
Haruhiko Okumura への返信

Re: 課題モジュールで提出物一覧が表示されない問題について

- Hidehiro Nakajima の投稿
奥村先生、ありがとうございます。

使用しているのは、三重大学版1.9の最新のものです。
エラーメッセージを報告したいのですが、それらしいエラーがログにも見あたりません。

引き続き調べてまた質問させていただきますが、現在授業が進行中(集中講義)のため、あまりいじるわけにもいきませんので、また経過をご報告します。

取り急ぎの返信で失礼いたします。
Hidehiro Nakajima への返信

Re: 課題モジュールで提出物一覧が表示されない問題について

- Haruhiko Okumura の投稿
たったいま,今日のweekly版をマージしました。
moodle19.tar.bz2が先週の版,svnとファイルを直接見たものが新しい版になっています。もっとも,今日の版は十分テストしていませんので先週の版のほうがいいかもしれません。

デバッグ中は,php.iniをいじるか,.htaccessに

php_value display_errors On

と書くかしてエラーメッセージがブラウザに現れるようにしたほうが便利です。それでもエラーが出ずに真っ白な画面だけのこともありますが。
Haruhiko Okumura への返信

Re: 課題モジュールで提出物一覧が表示されない問題について

- Hidehiro Nakajima の投稿
奥村先生、またまたありがとうございます。

先程申し添えるべきでしたが、display_errors On で試しておりますが、エラーメッセージは見当たらない状況です。

引き続きよろしくお願いいたします。
Hidehiro Nakajima への返信

Re: 課題モジュールで提出物一覧が表示されない問題について

- Tatsuya Shirai の投稿

 エラーが出ないという点が不可解ではありますが,ロールのパーミッションをオーバーライドしたりしているということは無いでしょうか?

 そう考えて,管理者のパーミッションの「課題:課題を表示する」,「課題:課題を評定する」を禁止にしてみたのですが,エラーどころか表示も評定もできてしまいますね.これもこれで問題があるような気がしますが...(三重大学版ではありません)

 ちなみに中島先生は三重大学の方ですよね.御近所さんではないですか? > 奥村先生.

#既にお気づきでしたら失礼!

Tatsuya Shirai への返信

Re: 課題モジュールで提出物一覧が表示されない問題について

- Haruhiko Okumura の投稿
おかしいですね。エラーが出てくれないと,あちこちに echo 文でも入れてチェックするしかしょうがないのですかねぇ。ちょっと考えます。

> 御近所さんではないですか?

元ご近所さんです。 ウインク
Tatsuya Shirai への返信

Re: 課題モジュールで提出物一覧が表示されない問題について

- Haruhiko Okumura の投稿
・PHPのバージョンやphp.iniを送っていただいてこちらで同じ環境を作って追試する
・仮にMoodleアカウントとサーバ上でソースを書き換える権限を与えていただく
といったことしか考えられません。ソースは1.9.2になった時点(先週)のものということでいいんですよね。

Haruhiko Okumura への返信

Re: 課題モジュールで提出物一覧が表示されない問題について

- Tatsuya Shirai の投稿

 画面が真っ白(ヘッダーのナビメニュー等も一切表示されない)とすると,mod/assignment/lib.phpのfunction display_submissions()の

        $tabindex = 1; //tabindex for quick grading tabbing; Not working for dropdowns yet

        add_to_log($course->id, 'assignment', 'view submission', 'submissions.php?id='.$this->assignment->id, $this->assignment->id, $this->cm->id);

        $navigation = build_navigation($this->strsubmissions, $this->cm);
        print_header_simple(format_string($this->assignment->name,true), "", $navigation,
                '', '', true, update_module_button($cm->id, $course->id, $this->strassignment), navmenu($course, $cm));

このprint_header_simple()の前までに何かが起きているということですね. ここまで到達しているならば,Moodleの課題のログに"assignment view submission"と記録されているはずです.

 このfunction display_submissions()へは,同じmod/assignment/lib.phpのfunction submissions()から,($modeが'all'と仮定すれば)ダイレクトに呼ばれていますので,原因が予想しにくいですね.

    function submissions($mode) {
        global $USER;

        $mailinfo = optional_param('mailinfo', null, PARAM_BOOL);
        if (is_null($mailinfo)) {
            $mailinfo = get_user_preferences('assignment_mailinfo', 0);
        } else {
            set_user_preference('assignment_mailinfo', $mailinfo);
        }

        switch ($mode) {
            case 'grade':                         // We are in a popup window grading
              (略)
                break;

            case 'single':                        // We are in a popup window displaying submission
                $this->display_submission();
                break;

            case 'all':                          // Main window, display everything
                $this->display_submissions();
                break;

このfunction submissions()は,mod/assignment/submissions.phpから,ほぼ直接呼び出されています.

    require_login($course->id, false, $cm);
    require_capability('mod/assignment:grade', get_context_instance(CONTEXT_MODULE, $cm->id));

この2つのチェックを除けば,エラー表示(error())されるはずですからね.
 うーん,エラーも出さずに終了してしまうような箇所はパッと見では見当たらないですね.


サイト管理/サーバ/デバッグ のデバッグメッセージはNORMAL / ALL / DEVELOPER 何れかを設定されていますよね?

 

Tatsuya Shirai への返信

Re: 課題モジュールで提出物一覧が表示されない問題について

- Haruhiko Okumura の投稿
> サイト管理/サーバ/デバッグ のデバッグメッセージはNORMAL / ALL / DEVELOPER 何れかを設定されていますよね?

そうか,今までPHPのログのことしか頭にありませんでしたけれど,Moodle自体をデバッグモードで動かしてもいいですね。
Haruhiko Okumura への返信

Re: 課題モジュールで提出物一覧が表示されない問題について

- Hidehiro Nakajima の投稿

先生方、ありがとうございます。

現在いろいろ立て込んでおりましてちょっとMoodleの対応できていませんが、コメントいただいた点をチェックして、またご報告したいと思います。

取り急ぎ、御礼まで。

Hidehiro Nakajima への返信

Re: 課題モジュールで提出物一覧が表示されない問題について

- Haruhiko Okumura の投稿
すいません,三重大版 mod/assignment/lib.php に潜在的なバグを見つけました。これを今のバージョンに入れ替えてみてくださいませんでしょうか。

うちのMoodle 1.9でちゃんと動いていたのが不思議です。多分MySQLのバージョンの違いなんでしょうか。
Haruhiko Okumura への返信

Re: 課題モジュールで提出物一覧が表示されない問題について

- Tatsuya Shirai の投稿

 u.usernameに関わる部分でしょうか?

 実はまだ三重大版のこの部分の改良は利用させて頂いていない(学期末までには欲しいですね^^;)のですが,今後,利用させて頂く予定です.ですので,今後の参考のために,具体的にどの部分を訂正されたのかをお時間のある時に示して頂けると助かります.

#中島先生の動作報告の後でも結構です!

Tatsuya Shirai への返信

Re: 課題モジュールで提出物一覧が表示されない問題について

- Hidehiro Nakajima の投稿
奥村先生、mod/assignment/lib.php を新しいファイルで置き換えたところ、課題一覧が出るようになりました。どうもありがとうございました。ちなみに、こちらのMySQLのバージョンは、5.0.45でした。

白井先生、こちらの勘違いで、Moodle側のデバッグメッセージはNone
になっていました。デバッグメッセージを表示する状態で、問題解決前の環境をつくると、

Notice: Undefined variable: fullname in /var/www/html/moodle/mod/assignment/lib.php on line 1306

Fatal error: Function name must be a string in /var/www/html/moodle/mod/assignment/lib.php on line 1306

が出ていたようです。
それからまっしろという表現も正しくなく、ヘッダメニューなどは表示され、課題一覧が出るはずの位置のみまっしろということでした。
併せてお詫び申し上げます。

まずは動作するようになったということで、ご報告いたします。
今後ともよろしくお願いいたします。
Hidehiro Nakajima への返信

Re: 課題モジュールで提出物一覧が表示されない問題について

- Haruhiko Okumura の投稿
よかったです。私のミスでエンバグしており,申し訳ありませんでした。m(__)m

なお,バグはl.838あたりの

        if ($users) {
            $select = 'SELECT u.id, u.username, u.firstname, u.lastname, u.picture, u.imagealt,  // okumura: username added

です。SQL文の中にコメントを書いてしまったというわけです。^^;;;;
Haruhiko Okumura への返信

Re: 課題モジュールで提出物一覧が表示されない問題について

- Haruhiko Okumura の投稿
あれ,エラーは1306行目で起こっているんですか??

はてー,でも直ったのならいいことにしましょう。^^;;;
Haruhiko Okumura への返信

Re: 課題モジュールで提出物一覧が表示されない問題について

- Tatsuya Shirai の投稿

あーーー! これは気付かないですよね(気付きませんでした...).

確かに自分でも似たようなミスを犯してしまい,発見に手間取った記憶があります.

Tatsuya Shirai への返信

Re: 課題モジュールで提出物一覧が表示されない問題について

- Hidehiro Nakajima の投稿

先生方、たびたび失礼します。

実は、後日談が出てしまいまして、教師の課題一覧の方は解決しましたが、学生側の画面で、提出した課題が表示されなくなってしまいました(単一ファイルのアップロードのみで確認)。

先と同様、提出物が出るはずの画面までは正常で、そのあと表示されない現象です。下のエラーが出ています。

Fatal error: Call to undefined function get_file_url() in /var/www/html/moodle/mod/assignment/lib.php on line 2011

お知恵を拝借できれば幸いです。

Hidehiro Nakajima への返信

Re: 課題モジュールで提出物一覧が表示されない問題について

- Tatsuya Shirai の投稿

function get_file_url()は比較的新しく追加された関数です.

http://moodle.org/mod/forum/discuss.php?d=94845

 いまご使用中のMoodleの,lib/filelib.phpの頭のあたりにこの関数が存在しないのであれば,filelib.phpが古い可能性があります.(あるいはMoodle全体が).

 もしlib/filelib.php中にget_file_url()関数が宣言されているのであれば,lib/filelib.phpをインクルードし損ねているということになります.

#なんとなく,mod/assignment/lib.phpのみ最新で,それ以外は古いバージョンなのではないか?と思います.

Hidehiro Nakajima への返信

Re: 課題モジュールで提出物一覧が表示されない問題について

- Haruhiko Okumura の投稿
おおお,まさに白井先生がこれから get_file_url() でバグが出るかもしれないと予測された通りのことになりましたね。^^;

すぐ考えます。やはり新しいものは怖いです。
Haruhiko Okumura への返信

Re: 課題モジュールで提出物一覧が表示されない問題について

- Haruhiko Okumura の投稿
> #なんとなく,mod/assignment/lib.phpのみ最新で,それ以外は古いバージョンなのではないか?と思います.

ぴんぽーんだと思います。どうしましょう。元のファイルをお持ちですか>中島先生。もしお持ちなら,エディタで開いて例のコメントだけ削除するほうが手っ取り早いです。
Haruhiko Okumura への返信

Re: 課題モジュールで提出物一覧が表示されない問題について

- Hidehiro Nakajima の投稿

ありがとうございます。

とりあえず元のファイルを戻して、エディタで削除してみました。まだ、前の問題が解決できませんが、それよりバージョンが気になってきました。

こちらでは、奥村先生がリリースされた最新の三重大版を入れているはずですが、最新版になっていないかもしれません。何分、元ご近所さんになってしまって、しかたなく新米管理者をしているもので、おかしな操作をしているのではと思います。

また調べてご相談しますが、お手数かけてしまい申し訳ありません。

Hidehiro Nakajima への返信

Re: 課題モジュールで提出物一覧が表示されない問題について

- Haruhiko Okumura の投稿
あれ,まだ解決できてないですか。何ででしょうね。いっそのこと,さくっと全部新しいものに置き換えてしまえばどうなるでしょう?

もっとも,1.9.*の動きが激しいので,日本語ファイル名対応の部分が今はやや怪しいです。来週ビッグサイトでインストールデモするまでに十分チェックしなくちゃ。
Haruhiko Okumura への返信

Re: 課題モジュールで提出物一覧が表示されない問題について

- Hidehiro Nakajima の投稿
奥村先生、ちょっとだけ時間ができたので、今日の午後改めて三重大学版をダウンロードし直して、もう一度入れ直してみました。
すると、今のところこれまでの問題は全て解決している模様です。
mod/assignment/lib.php も修正後のもののようですね。
取り急ぎ、ご報告です。いろいろお手数をお掛けして申し訳ありませんでした。

また何かありましたら、よろしくお願いいたします。
Hidehiro Nakajima への返信

Re: 課題モジュールで提出物一覧が表示されない問題について

- Haruhiko Okumura の投稿
動きましたか! よかったよかった。

総力を挙げてサポートしますので,どんどんバグレポート送ってください。