mirror of
https://github.com/moodle/moodle.git
synced 2025-02-02 22:29:18 +01:00
59c005b76e
------------------------ 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...
123 lines
5.0 KiB
PHP
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;
|
|
}
|
|
|
|
|
|
?>
|