なんと表現すれば良いのか難しいのですが...
いま一つのコースに22個の課題がある授業の採点をしています.大抵はクイック評定を用いてクラス50名弱の課題を一気に採点します.一つの採点が終わったら次の課題の採点です.次の? あれ,いまどの採点したんだったか? ええ,”すべてのコース評定を表示する”で一覧表を表示して,そしてまだ採点されていない課題を選択すれば良いです.この段階では.
一通り採点が終わった後に,学生に再提出を指示して待ちます.提出物が更新されれば”状態”欄が変化しますので分かります.ちなみに課題が再提出されたかどうかは”すべてのコース評定を表示する”では分かりませんので(60点未満は再提出,などのルールを決めていないと無理),一つ一つの課題をクリックしては添付した図のようなクイック評定の画面を出してチェックします.うーむ,この課題はまだ再提出なしか.では,次.え,次? いまどの課題をチェックしたんだったか?
そこである課題のクイック評定から,”次の課題のクイック評定”と”一つ前の課題のクイック評定”にワンクリックで移動できるリンクを添付した図の赤い線で示す箇所のように,追加しました.幸せです,とても幸せです(いや本当に).
まだソースの見直しが完璧ではありませんが,以下のようなコードを追加するだけで実現できます.意外と簡単ですね(これは”単一ファイルの提出”のみです.”高度なアップロード”などの場合は関数がオーバーライドされているかも知れませんので,そちらにも同様の修正が必要かも知れません).
mod/assignment/lib.php, function display_submissions()
$course_context = get_context_instance(CONTEXT_COURSE, $course->id);
if (has_capability('gradereport/grader:view', $course_context) && has_capability('moodle/grade:viewall', $course_context)) {
echo '<div class="allcoursegrades"><a href="' . $CFG->wwwroot . '/grade/report/grader/index.php?id=' . $course->id . '">'
. get_string('seeallcoursegrades', 'grades') . '</a></div>';
}
// (Shirai): ここから追加
if (1) {
$listofassignments = get_records('assignment', 'course', $course->id, 'id ASC', 'id, name');
$previd = $nextid = 0;
$id1 = $id2 = $id3 = 0;
foreach ($listofassignments as $id=>$name) {
$id1 = $id2;
$id2 = $id3;
$id3 = $id;
if ($this->assignment->id == $id2) {
$previd = $id1;
$nextid = $id3;
break;
}
}
if ($this->assignment->id == $id3) {
$previd = $id2;
}
$submittionaddress = $CFG->wwwroot.'/mod/assignment/submissions.php?a=';
$command_str_pn = '';
if ($previd > 0) {
$command_str_pn .= '<a href="'.$submittionaddress.$previd.'">< 前の課題 | </a>';
}
if ($nextid > 0) {
$command_str_pn .= '<a href="'.$submittionaddress.$nextid.'">| 次の課題 ></a>';
}
if ($command_str_pn != '') echo '<div class="allcoursegrades">'.$command_str_pn.'</div><br/>';
}
// (Shirai): ここまで追加
if (!empty($message)) {
echo $message; // display messages here if any
}
if (1) で括ってあるのは...すみません,デバッグのためでした.外して結構です.あと,画面の一番下にもこのリンクを表示したいのであれば,
echo '</div></form></div>';
///End of mini form
// (Shirai): ここから追加
if ($command_str_pn != '') echo '<br /><div class="allcoursegrades">'.$command_str_pn.'</div><br/>';
// (Shirai): ここまで追加
print_footer($this->course);
}
このように関数のお尻に追加するのも良いでしょう.くれぐれも”すべてのフィードバックを保存する”を押す前にジャンプしないように!
(Javascriptで”すべてのフィードバックを保存する”を押すまでリンクを非表示にする,ということも技術的は可能ですが)
