mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 08:56:36 +02:00
Better updating of table from popup
This commit is contained in:
parent
1452ca7b0b
commit
d59269cfa6
1 changed files with 60 additions and 39 deletions
|
@ -271,11 +271,7 @@ class assignment_base {
|
||||||
echo '<script type="text/javascript">'."\n<!--\n";
|
echo '<script type="text/javascript">'."\n<!--\n";
|
||||||
echo 'opener.document.getElementById("ts'.$submission->userid.'").innerHTML="'.userdate($submission->timemodified)."\";\n";
|
echo 'opener.document.getElementById("ts'.$submission->userid.'").innerHTML="'.userdate($submission->timemodified)."\";\n";
|
||||||
echo 'opener.document.getElementById("tt'.$submission->userid.'").innerHTML="'.userdate($submission->timemarked)."\";\n";
|
echo 'opener.document.getElementById("tt'.$submission->userid.'").innerHTML="'.userdate($submission->timemarked)."\";\n";
|
||||||
echo 'grademenu = opener.document.getElementById("menug8");'."\n";
|
echo 'opener.document.getElementById("g'.$submission->userid.'").innerHTML="'.$this->display_grade($submission->grade)."\";\n";
|
||||||
echo 'for (i=0;i<grademenu.options.length;i++)';
|
|
||||||
echo ' if (grademenu.options[i].value == "'.$submission->grade.'")';
|
|
||||||
echo ' grademenu.selectedIndex = i;';
|
|
||||||
|
|
||||||
echo "\n-->\n</script>";
|
echo "\n-->\n</script>";
|
||||||
fflush();
|
fflush();
|
||||||
}
|
}
|
||||||
|
@ -293,13 +289,35 @@ class assignment_base {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Display a grade in user-friendly form, whether it's a scale or not
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
function display_grade($grade) {
|
||||||
|
|
||||||
|
static $scalegrades; // Cached because we only have one per assignment
|
||||||
|
|
||||||
|
if ($this->assignment->grade >= 0) { // Normal number
|
||||||
|
return $grade;
|
||||||
|
|
||||||
|
} else { // Scale
|
||||||
|
if (empty($scalegrades)) {
|
||||||
|
if ($scale = get_record('scale', 'id', -($this->assignment->grade))) {
|
||||||
|
$scalegrades = make_menu_from_list($scale->scale);
|
||||||
|
} else {
|
||||||
|
return '-';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $scalegrades[$grade];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Display a single submission, ready for grading on a popup window
|
* Display a single submission, ready for grading on a popup window
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
function display_submission() {
|
function display_submission() {
|
||||||
|
|
||||||
|
|
||||||
$userid = required_param('userid');
|
$userid = required_param('userid');
|
||||||
|
|
||||||
if (!$user = get_record('user', 'id', $userid)) {
|
if (!$user = get_record('user', 'id', $userid)) {
|
||||||
|
@ -477,14 +495,14 @@ class assignment_base {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$select = 'SELECT u.id, u.firstname, u.lastname, u.picture, s.id AS submissionid, s.grade, s.timemodified, s.timemarked ';
|
$select = 'SELECT '.$db->Concat('u.id', '\'#\'', $db->IfNull('s.userid', '0')).' AS uvs, u.id, u.firstname, u.lastname, u.picture, s.id AS submissionid, s.grade, s.timemodified, s.timemarked ';
|
||||||
$group = '';
|
$group = 'GROUP BY uvs ';
|
||||||
$sql = 'FROM '.$CFG->prefix.'user u '.
|
$sql = 'FROM '.$CFG->prefix.'user u '.
|
||||||
'LEFT JOIN '.$CFG->prefix.'assignment_submissions s ON u.id = s.userid AND s.assignment = '.$this->assignment->id.' '.
|
'LEFT JOIN '.$CFG->prefix.'assignment_submissions s ON u.id = s.userid AND s.assignment = '.$this->assignment->id.' '.
|
||||||
'WHERE '.$where.'u.id IN ('.implode(',', array_keys($users)).') ';
|
'WHERE '.$where.'u.id IN ('.implode(',', array_keys($users)).') ';
|
||||||
|
|
||||||
|
|
||||||
$total = count_records_sql('SELECT COUNT(u.id) '.$sql);
|
$total = count_records_sql('SELECT COUNT(DISTINCT('.$db->Concat('u.id', '\'#\'', $db->IfNull('s.userid', '0')).')) '.$sql);
|
||||||
|
|
||||||
$table->pagesize($perpage, $total);
|
$table->pagesize($perpage, $total);
|
||||||
|
|
||||||
|
@ -499,8 +517,10 @@ class assignment_base {
|
||||||
$grademenu = make_grades_menu($this->assignment->grade);
|
$grademenu = make_grades_menu($this->assignment->grade);
|
||||||
|
|
||||||
if (($ausers = get_records_sql($select.$sql.$group.$sort.$limit)) === false) {
|
if (($ausers = get_records_sql($select.$sql.$group.$sort.$limit)) === false) {
|
||||||
$ausers = array();
|
|
||||||
}
|
$table->add_data(array('No users found')); /// No users to match query
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
foreach ($ausers as $auser) {
|
foreach ($ausers as $auser) {
|
||||||
$picture = print_user_picture($auser->id, $course->id, $auser->picture, false, true);
|
$picture = print_user_picture($auser->id, $course->id, $auser->picture, false, true);
|
||||||
|
@ -522,13 +542,14 @@ class assignment_base {
|
||||||
$teachermodified = '<div id="tt'.$auser->id.'">-</div>';
|
$teachermodified = '<div id="tt'.$auser->id.'">-</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
$grade = choose_from_menu($grademenu, 'g'.$auser->id, $auser->grade, get_string('nograde'), '', 0, true);
|
//$grade = choose_from_menu($grademenu, 'g'.$auser->id, $auser->grade, get_string('nograde'), '', 0, true);
|
||||||
|
$grade = '<div id="g'.$auser->id.'">'.$this->display_grade($auser->grade).'</div>';
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$studentmodified = '<div id="ts'.$auser->id.'">-</div>';
|
$studentmodified = '<div id="ts'.$auser->id.'">-</div>';
|
||||||
$teachermodified = '<div id="tt'.$auser->id.'">-</div>';
|
$teachermodified = '<div id="tt'.$auser->id.'">-</div>';
|
||||||
$status = '<div id="st'.$auser->id.'"></div>';
|
$status = '<div id="st'.$auser->id.'"></div>';
|
||||||
$grade = choose_from_menu($grademenu, 'g'.$auser->id, -1, get_string('nograde'), '', 0, true);
|
$grade = '<div id="g'.$auser->id.'">-</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
$button = button_to_popup_window ('/mod/assignment/submissions.php?id='.$this->cm->id.'&userid='.$auser->id.'&mode=single',
|
$button = button_to_popup_window ('/mod/assignment/submissions.php?id='.$this->cm->id.'&userid='.$auser->id.'&mode=single',
|
||||||
|
@ -538,7 +559,7 @@ class assignment_base {
|
||||||
$row = array($picture, fullname($auser), $grade, $studentmodified, $teachermodified, $status.' '.$button);
|
$row = array($picture, fullname($auser), $grade, $studentmodified, $teachermodified, $status.' '.$button);
|
||||||
$table->add_data($row);
|
$table->add_data($row);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$table->print_html();
|
$table->print_html();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue