MDL-10662, I found these bugs when I was working on MDL-14068

This commit is contained in:
dongsheng 2008-04-04 04:32:29 +00:00
parent 5a2a53316f
commit f7edb3c779

View File

@ -238,14 +238,14 @@ function exercise_count_student_submissions($exercise) {
global $CFG;
// make sure it works on the site course
$select = "u.course = '$exercise->course' AND";
if ($exercise->course == SITEID) {
$select = '';
}
// Where is table u? I remove it, try to make SQL correct.
// $select = "u.course = '$exercise->course' AND";
// if ($exercise->course == SITEID) {
// $select = '';
// }
return count_records_sql("SELECT count(*) FROM {$CFG->prefix}exercise_submissions s
WHERE $select
AND s.exerciseid = $exercise->id
WHERE s.exerciseid = $exercise->id
AND timecreated > 0");
}
@ -487,16 +487,16 @@ function exercise_get_best_submission_grades($exercise) {
global $CFG;
// make sure it works on the site course
$select = "u.course = '$exercise->course' AND";
if ($exercise->course == SITEID) {
$select = '';
}
// Where is table u? I remove it, try to make SQL correct.
// $select = "u.course = '$exercise->course' AND";
// if ($exercise->course == SITEID) {
// $select = '';
// }
return get_records_sql("SELECT DISTINCT s.userid, MAX(a.grade) AS grade FROM
{$CFG->prefix}exercise_submissions s,
{$CFG->prefix}exercise_assessments a
WHERE $select
AND s.exerciseid = $exercise->id
WHERE s.exerciseid = $exercise->id
AND s.late = 0
AND a.submissionid = s.id
GROUP BY s.userid");
@ -540,55 +540,16 @@ function exercise_get_student_submissions($exercise, $order = "time", $groupid =
// allow for multiple assessments of submissions (coming from different teachers)
// make sure it works on the site course
$select = "u.course = '$exercise->course' AND";
if ($exercise->course == SITEID) {
$select = '';
}
// Where is table u? I remove it, try to make SQL correct.
// $select = "u.course = '$exercise->course' AND";
// if ($exercise->course == SITEID) {
// $select = '';
// }
return get_records_sql("SELECT s.*, AVG(a.grade) AS grade FROM
{$CFG->prefix}groups_members g, {$CFG->prefix}exercise_submissions s,
{$CFG->prefix}exercise_assessments a
WHERE $select g.groupid = $groupid
AND s.exerciseid = $exercise->id
AND a.submissionid = s.id
GROUP BY s.id
ORDER BY a.grade DESC");
}
if ($order == "title") {
$order = "s.title";
} elseif ($order == "name") {
$order = "n.firstname, n.lastname, s.timecreated DESC";
} elseif ($order == "time") {
$order = "s.timecreated";
}
// make sure it works on the site course
$select = "u.course = '$exercise->course' AND";
if ($exercise->course == SITEID) {
$select = '';
}
return get_records_sql("SELECT s.* FROM {$CFG->prefix}user n,
{$CFG->prefix}groups_members g, {$CFG->prefix}exercise_submissions s
WHERE $select g.groupid = $groupid
AND s.exerciseid = $exercise->id
ORDER BY $order");
}
else { // no group - all users
if ($order == "grade") {
// allow for multiple assessments of submissions (coming from different teachers)
// make sure it works on the site course
$select = "u.course = '$exercise->course' AND";
if ($exercise->course == SITEID) {
$select = '';
}
return get_records_sql("SELECT s.*, AVG(a.grade) AS grade FROM {$CFG->prefix}exercise_submissions s,
{$CFG->prefix}exercise_assessments a
WHERE $select
WHERE g.groupid = $groupid
AND s.exerciseid = $exercise->id
AND a.submissionid = s.id
GROUP BY s.id
@ -604,15 +565,56 @@ function exercise_get_student_submissions($exercise, $order = "time", $groupid =
}
// make sure it works on the site course
$select = "u.course = '$exercise->course' AND";
if ($exercise->course == SITEID) {
$select = '';
// Where is table u? I remove it, try to make SQL correct.
// $select = "u.course = '$exercise->course' AND";
// if ($exercise->course == SITEID) {
// $select = '';
// }
return get_records_sql("SELECT s.* FROM {$CFG->prefix}user n,
{$CFG->prefix}groups_members g, {$CFG->prefix}exercise_submissions s
WHERE g.groupid = $groupid
AND s.exerciseid = $exercise->id
ORDER BY $order");
}
else { // no group - all users
if ($order == "grade") {
// allow for multiple assessments of submissions (coming from different teachers)
// make sure it works on the site course
// Where is table u? I remove it, try to make SQL correct.
// $select = "u.course = '$exercise->course' AND";
// if ($exercise->course == SITEID) {
// $select = '';
// }
return get_records_sql("SELECT s.*, AVG(a.grade) AS grade FROM {$CFG->prefix}exercise_submissions s,
{$CFG->prefix}exercise_assessments a
WHERE s.exerciseid = $exercise->id
AND a.submissionid = s.id
GROUP BY s.id
ORDER BY a.grade DESC");
}
if ($order == "title") {
$order = "s.title";
} elseif ($order == "name") {
$order = "n.firstname, n.lastname, s.timecreated DESC";
} elseif ($order == "time") {
$order = "s.timecreated";
}
// make sure it works on the site course
// Where is table u? I remove it, try to make SQL correct.
// $select = "u.course = '$exercise->course' AND";
// if ($exercise->course == SITEID) {
// $select = '';
// }
return get_records_sql("SELECT s.* FROM {$CFG->prefix}exercise_submissions s,
{$CFG->prefix}user n
WHERE $select
AND s.exerciseid = $exercise->id
WHERE s.exerciseid = $exercise->id
ORDER BY $order");
}
}
@ -657,16 +659,15 @@ function exercise_get_ungraded_assessments_student($exercise) {
// Return all assessments which have not been graded or just graded of student's submissions
// make sure it works on the site course
$select = "u.course = '$exercise->course' AND";
if ($exercise->course == SITEID) {
$select = '';
}
// $select = "u.course = '$exercise->course' AND";
// if ($exercise->course == SITEID) {
// $select = '';
// }
$cutofftime =time() - $CFG->maxeditingtime;
return get_records_sql("SELECT a.* FROM {$CFG->prefix}exercise_submissions s
{$CFG->prefix}exercise_assessments a
WHERE $select
AND s.exerciseid = $exercise->id
WHERE s.exerciseid = $exercise->id
AND a.submissionid = s.id
AND (a.timegraded = 0 OR a.timegraded > $cutofftime)
AND a.timecreated < $cutofftime