From: rkingdon Date: Fri, 14 Nov 2003 15:38:50 +0000 (+0000) Subject: Indexes added to submissions, assessments and grades tables. X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=e539802dc51ed29585851a61638b7f6c3fc9aae7;p=moodle.git Indexes added to submissions, assessments and grades tables. Administration page cleaned up slightly. --- diff --git a/mod/exercise/db/mysql.php b/mod/exercise/db/mysql.php index b8e745a8e5..15cba27930 100644 --- a/mod/exercise/db/mysql.php +++ b/mod/exercise/db/mysql.php @@ -6,6 +6,13 @@ function exercise_upgrade($oldversion) { global $CFG; + if ($oldversion < 2003111400) { + execute_sql(" ALTER TABLE `{$CFG->prefix}exercise_submissions` ADD INDEX (`userid`)"); + execute_sql(" ALTER TABLE `{$CFG->prefix}exercise_submissions` DROP INDEX `title`"); + execute_sql(" ALTER TABLE `{$CFG->prefix}exercise_assessments` ADD INDEX (`submissionid`)"); + execute_sql(" ALTER TABLE `{$CFG->prefix}exercise_submissions` ADD INDEX (`userid`)"); + execute_sql(" ALTER TABLE `{$CFG->prefix}exercise_grades` ADD INDEX (`assessmentid`)"); + } return true; } diff --git a/mod/exercise/db/mysql.sql b/mod/exercise/db/mysql.sql index 684a69c773..943bfdc458 100644 --- a/mod/exercise/db/mysql.sql +++ b/mod/exercise/db/mysql.sql @@ -36,7 +36,7 @@ CREATE TABLE `prefix_exercise_submissions` ( `mailed` tinyint(3) unsigned NOT NULL default '0', `isexercise` tinyint(3) unsigned NOT NULL default '0', PRIMARY KEY (`id`), - INDEX `title` (`title`) + INDEX `userid` (`userid`) ) COMMENT='Info about submitted work from teacher and students'; # -------------------------------------------------------- @@ -56,7 +56,9 @@ CREATE TABLE `prefix_exercise_assessments` ( `mailed` tinyint(2) unsigned NOT NULL default '0', `generalcomment` text NOT NULL, `teachercomment` text NOT NULL, - PRIMARY KEY (`id`) + PRIMARY KEY (`id`), + INDEX (`submissionid`), + INDEX (`userid`) ) COMMENT='Info about assessments by teacher and students'; # -------------------------------------------------------- @@ -102,7 +104,8 @@ CREATE TABLE `prefix_exercise_grades` ( `elementno` int(10) unsigned NOT NULL default '0', `feedback` text NOT NULL default '', `grade` tinyint(3) NOT NULL default '0', - PRIMARY KEY (`id`) + PRIMARY KEY (`id`), + INDEX (`assessmentid`) ) COMMENT='Info about individual grades given to each element'; # -------------------------------------------------------- diff --git a/mod/exercise/lib.php b/mod/exercise/lib.php index 8e0bea4b7c..38c57263b1 100644 --- a/mod/exercise/lib.php +++ b/mod/exercise/lib.php @@ -626,7 +626,7 @@ function exercise_get_user_assessments($exercise, $user) { function exercise_get_user_submissions($exercise, $user) { function exercise_list_all_ungraded_assessments($exercise) { -function exercise_list_submissions_for_admin($exercise, $order) { +function exercise_list_submissions_for_admin($exercise) { function exercise_list_teacher_assessments($exercise, $user) { function exercise_list_teacher_submissions($exercise, $user, $reassess) { function exercise_list_unassessed_student_submissions($exercise, $user) { @@ -1330,7 +1330,7 @@ function exercise_list_all_ungraded_assessments($exercise) { /////////////////////////////////////////////////////////////////////////////////////////////// -function exercise_list_submissions_for_admin($exercise, $order) { +function exercise_list_submissions_for_admin($exercise) { // list the teacher sublmissions first global $CFG, $EXERCISE_FWEIGHTS, $THEME, $USER; @@ -1482,73 +1482,67 @@ function exercise_list_submissions_for_admin($exercise, $order) { print_table($table); echo "

".get_string("noteonstudentassessments", "exercise")."

\n"; } - } + $elapsed = time() - $timenow; + echo "

Elapsed time: $elapsed\n"; + } // now the sudent submissions unset($table); - switch ($order) { - case "title" : - $table->head = array("id&order=name\">". - get_string("submittedby", "exercise")."", get_string("title", "exercise"), - get_string("submitted", "exercise"), get_string("action", "exercise")); - break; - case "name" : - $table->head = array (get_string("submittedby", "exercise"), - "id&order=title\">". - get_string("title", "exercise")."", get_string("submitted", "exercise"), - get_string("action", "exercise")); - break; - } - $table->align = array ("left", "left", "left", "left"); - $table->size = array ("*", "*", "*", "*"); - $table->cellpadding = 2; - $table->cellspacing = 0; - - if ($submissions = exercise_get_student_submissions($exercise, $order)) { - foreach ($submissions as $submission) { - if (!$user = get_record("user", "id", $submission->userid)) { - error("exercise_list_submissions_for_admin: failure to get user record"); - } - $action = "id&sid=$submission->id\">". - get_string("amendtitle", "exercise").""; - // has teacher already assessed this submission - if ($assessment = get_record_select("exercise_assessments", "submissionid = $submission->id - AND userid = $USER->id")) { - $curtime = time(); - if (($curtime - $assessment->timecreated) > $CFG->maxeditingtime) { - $action .= " | id&sid=$submission->id\">". - get_string("reassess", "exercise").""; - } - else { // there's still time left to edit... - $action .= " | id&sid=$submission->id\">". - get_string("edit", "exercise").""; - } - } - else { // user has not assessed this submission - $action .= " | id&sid=$submission->id\">". - get_string("assess", "exercise").""; - } - if ($nassessments = exercise_count_assessments($submission)) { - $action .= " | id&sid=$submission->id\">". - get_string("view", "exercise")." ($nassessments)"; - } - $action .= " | id&sid=$submission->id\">". - get_string("delete", "exercise").""; - $title = $submission->title; - if ($submission->resubmit) { - $title .= "*"; - } - $table->data[] = array("$user->firstname $user->lastname", $title. - " ".exercise_print_submission_assessments($exercise, $submission), - userdate($submission->timecreated), $action); - } - print_heading(get_string("studentsubmissions", "exercise", $course->student)." [". - count($submissions)."]", "center"); - print_table($table); - echo "

".get_string("resubmitnote", "exercise", $course->student)."

\n"; - echo "

".get_string("allgradeshaveamaximumof", "exercise", $exercise->grade)."

\n"; - } - } + if ($users) { + $table->head = array (get_string("submittedby", "exercise"), get_string("title", "exercise"), + get_string("submitted", "exercise"), get_string("action", "exercise")); + $table->align = array ("left", "left", "left", "left"); + $table->size = array ("*", "*", "*", "*"); + $table->cellpadding = 2; + $table->cellspacing = 0; + + foreach ($users as $user) { + if ($submissions = exercise_get_user_submissions($exercise, $user)) { + foreach ($submissions as $submission) { + $action = "id&sid=$submission->id\">". + get_string("amendtitle", "exercise").""; + // has teacher already assessed this submission + if ($assessment = get_record_select("exercise_assessments", + "submissionid = $submission->id AND userid = $USER->id")) { + $curtime = time(); + if (($curtime - $assessment->timecreated) > $CFG->maxeditingtime) { + $action .= " | id&sid=$submission->id\">". + get_string("reassess", "exercise").""; + } + else { // there's still time left to edit... + $action .= " | id&sid=$submission->id\">". + get_string("edit", "exercise").""; + } + } + else { // user has not assessed this submission + $action .= " | id&sid=$submission->id\">". + get_string("assess", "exercise").""; + } + if ($nassessments = exercise_count_assessments($submission)) { + $action .= " | id&sid=$submission->id\">". + get_string("view", "exercise")." ($nassessments)"; + } + $action .= " | id&sid=$submission->id\">". + get_string("delete", "exercise").""; + $title = $submission->title; + if ($submission->resubmit) { + $title .= "*"; + } + $table->data[] = array("$user->firstname $user->lastname", $title. + " ".exercise_print_submission_assessments($exercise, $submission), + userdate($submission->timecreated), $action); + } + } + } + print_heading(get_string("studentsubmissions", "exercise", $course->student)." [". + count($submissions)."]", "center"); + print_table($table); + echo "

".get_string("resubmitnote", "exercise", $course->student)."

\n"; + echo "

".get_string("allgradeshaveamaximumof", "exercise", $exercise->grade)."

\n"; + } + $elapsed = time() - $timenow; + echo "

Elapsed time: $elapsed\n"; +} /////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/mod/exercise/submissions.php b/mod/exercise/submissions.php index 39c7f93258..e19ec1ade6 100644 --- a/mod/exercise/submissions.php +++ b/mod/exercise/submissions.php @@ -143,19 +143,13 @@ if (!isteacher($course->id)) { error("Only teachers can look at this page"); - } - if (empty($_GET['order'])) { - $order = "name"; - } - else { - $order = $_GET['order']; - } - + } + echo "

Exercise Version-> $module->version

"; - exercise_list_submissions_for_admin($exercise, $order); + exercise_list_submissions_for_admin($exercise); print_continue("view.php?id=$cm->id"); - } + } /******************* admin update title ************************************/ diff --git a/mod/exercise/version.php b/mod/exercise/version.php index 6ee7bc3623..dc30cd5e6b 100644 --- a/mod/exercise/version.php +++ b/mod/exercise/version.php @@ -5,7 +5,7 @@ // This fragment is called by /admin/index.php //////////////////////////////////////////////////////////////////////////////// -$module->version = 2003100400; +$module->version = 2003111400; $module->cron = 60; ?>