moodle/mod/assignment/db/postgres7.php
moodler 59c005b76e Email alerts to teachers
------------------------

Added a small new feature to the assignment module to alert teachers when
new emails come in.  This feature adds one new field (which is tested) but
the operation of the new code has not been tested yet at all (apart from
PHP syntax) and very likely has bugs in it.

I'm checking this in so I can do tests on test.moodle.com which has email
set up properly.

I'm off to bed right now but if anyone else wants to test this feature
before tomorrow please do!   :-)

While I'm rambling here in CVS, I need to have a good look soon at Pablo's work
on Assignment and see if I can merge it all in...
2005-01-05 17:13:44 +00:00

123 lines
5.0 KiB
PHP

<?php // $Id$
function assignment_upgrade($oldversion) {
// This function does anything necessary to upgrade
// older versions to match current functionality
global $CFG;
if ($oldversion < 2002080500) {
execute_sql("
CREATE TABLE `assignment` (
`id` SERIAL PRIMARY KEY,
`course` integer NOT NULL default '0',
`name` varchar(255) NOT NULL default '',
`description` text NOT NULL,
`type` integer NOT NULL default '1',
`maxbytes` integer NOT NULL default '100000',
`timedue` integer NOT NULL default '0',
`grade` integer NOT NULL default '0',
`timemodified` integer NOT NULL default '0'
)
");
execute_sql("
CREATE TABLE `assignment_submissions` (
`id` integer NOT NULL PRIMARY KEY default '0',
`assignment` integer NOT NULL default '0',
`user` integer NOT NULL default '0',
`timecreated` integer NOT NULL default '0',
`timemodified` integer NOT NULL default '0',
`numfiles` integer NOT NULL default '0',
`grade` integer NOT NULL default '0',
`comment` text NOT NULL,
`teacher` integer NOT NULL default '0',
`timemarked` integer NOT NULL default '0',
`mailed` integer NOT NULL default '0'
)
");
execute_sql(" INSERT INTO log_display VALUES ('assignment', 'view', 'assignment', 'name') ");
execute_sql(" INSERT INTO log_display VALUES ('assignment', 'add', 'assignment', 'name') ");
execute_sql(" INSERT INTO log_display VALUES ('assignment', 'update', 'assignment', 'name') ");
execute_sql(" INSERT INTO log_display VALUES ('assignment', 'view submissions', 'assignment', 'name') ");
execute_sql(" INSERT INTO log_display VALUES ('assignment', 'upload', 'assignment', 'name') ");
}
if ($oldversion < 2002080701) {
execute_sql(" ALTER TABLE `assignment_submissions` CHANGE `id` `id` SERIAL PRIMARY KEY ");
}
if ($oldversion < 2002082806) {
// assignment file area was moved, so rename all the directories in existing courses
notify("Moving location of assignment files...");
$basedir = opendir("$CFG->dataroot");
while ($dir = readdir($basedir)) {
if ($dir == "." || $dir == ".." || $dir == "users") {
continue;
}
if (filetype("$CFG->dataroot/$dir") != "dir") {
continue;
}
$coursedir = "$CFG->dataroot/$dir";
if (! $coursemoddata = make_mod_upload_directory($dir)) {
echo "Error: could not create mod upload directory: $coursemoddata";
continue;
}
if (file_exists("$coursedir/assignment")) {
if (! rename("$coursedir/assignment", "$coursemoddata/assignment")) {
echo "Error: could not move $coursedir/assignment to $coursemoddata/assignment\n";
}
}
}
}
if ($oldversion < 2002101600) {
execute_sql(" ALTER TABLE `assignment` ADD `format` INTEGER DEFAULT '0' NOT NULL AFTER `description` ");
}
if ($oldversion < 2002110302) {
execute_sql(" UPDATE `assignment` SET `type` = '1'");
}
if ($oldversion < 2003091000) {
# Old field that was never added!
table_column("assignment", "", "resubmit", "integer", "2", "unsigned", "0", "", "format");
}
if ($oldversion < 2004021700) {
set_field("log_display", "action", "view submission", "module", "assignment", "action", "view submissions");
}
if ($oldversion < 2004040100) {
include_once("$CFG->dirroot/mod/assignment/lib.php");
assignment_refresh_events();
}
if ($oldversion < 2004111200) {
execute_sql("DROP INDEX {$CFG->prefix}assignment_course_idx;",false);
execute_sql("DROP INDEX {$CFG->prefix}assignment_submissions_assignment_idx;",false);
execute_sql("DROP INDEX {$CFG->prefix}assignment_submissions_userid_idx;",false);
execute_sql("DROP INDEX {$CFG->prefix}assignment_submissions_mailed_idx;",false);
execute_sql("DROP INDEX {$CFG->prefix}assignment_submissions_timemarked_idx;",false);
modify_database('','CREATE INDEX prefix_assignment_course_idx ON prefix_assignment (course);');
modify_database('','CREATE INDEX prefix_assignment_submissions_assignment_idx ON prefix_assignment_submissions (assignment);');
modify_database('','CREATE INDEX prefix_assignment_submissions_userid_idx ON prefix_assignment_submissions (userid);');
modify_database('','CREATE INDEX prefix_assignment_submissions_mailed_idx ON prefix_assignment_submissions (mailed);');
modify_database('','CREATE INDEX prefix_assignment_submissions_timemarked_idx ON prefix_assignment_submissions (timemarked);');
}
if ($oldversion < 2005010500) {
table_column('assignment', '', 'emailteachers', 'integer', '2', 'unsigned', 0, 'not null', 'resubmit');
}
return true;
}
?>