This is the first check-in of support for groups.

It's very early (it doesn't actually do anything yet!) but you can
define groups and get an idea of how the interface is shaping up.
I also wanted to show that I have actually done something on this! :-)

From here my plan is to add group support to the modules, one by one
(forums first), then go back and clean up some of the central interfaces,
graphics etc.

Finally, test, test, test and get 1.2 out well before the end of February.
This commit is contained in:
moodler 2003-12-30 17:18:06 +00:00
parent ee39bbe0ee
commit f374fb1006
22 changed files with 1029 additions and 57 deletions

View file

@ -560,6 +560,39 @@ function main_upgrade($oldversion=0) {
table_column("course", "", "showreports", "integer", "4", "unsigned", "0", "", "maxbytes");
}
if ($oldversion < 2003121600) {
modify_database("", "CREATE TABLE `prefix_group` (
`id` int(10) unsigned NOT NULL auto_increment,
`courseid` int(10) unsigned NOT NULL default '0',
`name` varchar(254) NOT NULL default '',
`description` text NOT NULL,
`lang` varchar(10) NOT NULL default 'en',
`picture` int(10) unsigned NOT NULL default '0',
`timecreated` int(10) unsigned NOT NULL default '0',
`timemodified` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `courseid` (`courseid`)
) TYPE=MyISAM COMMENT='Each record is a group in a course.'; ");
modify_database("", "CREATE TABLE `prefix_group_members` (
`id` int(10) unsigned NOT NULL auto_increment,
`groupid` int(10) unsigned NOT NULL default '0',
`userid` int(10) unsigned NOT NULL default '0',
`timeadded` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `groupid` (`groupid`)
) TYPE=MyISAM COMMENT='Lists memberships of users in groups'; ");
}
if ($oldversion < 2003121800) {
table_column("course", "modinfo", "modinfo", "longtext", "", "", "");
}
if ($oldversion < 2003122600) {
table_column("course", "", "groupmode", "integer", "4", "unsigned", "0", "", "showreports");
table_column("course", "", "groupmodeforce", "integer", "4", "unsigned", "0", "", "groupmode");
}
return $result;
}

View file

@ -37,7 +37,7 @@ CREATE TABLE `prefix_course` (
`summary` text NOT NULL,
`format` varchar(10) NOT NULL default 'topics',
`showgrades` smallint(2) unsigned NOT NULL default '1',
`modinfo` text NOT NULL,
`modinfo` longtext NOT NULL,
`newsitems` smallint(5) unsigned NOT NULL default '1',
`teacher` varchar(100) NOT NULL default 'Teacher',
`teachers` varchar(100) NOT NULL default 'Teachers',
@ -51,6 +51,9 @@ CREATE TABLE `prefix_course` (
`maxbytes` int(10) unsigned NOT NULL default '0',
`showreports` int(4) unsigned NOT NULL default '0',
`visible` int(10) unsigned NOT NULL default '1',
`groupmode` int(4) unsigned NOT NULL default '0',
`groupmodeforce` int(4) unsigned NOT NULL default '0',
`showreports` int(4) unsigned NOT NULL default '0',
`timecreated` int(10) unsigned NOT NULL default '0',
`timemodified` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`id`),
@ -124,10 +127,44 @@ CREATE TABLE `prefix_course_sections` (
`summary` text NOT NULL,
`sequence` text NOT NULL default '',
`visible` tinyint(1) NOT NULL default '1',
PRIMARY KEY (`id`)
PRIMARY KEY (`id`),
KEY `coursesection` (course,section)
) TYPE=MyISAM;
# --------------------------------------------------------
#
# Table structure for table `group`
#
CREATE TABLE `prefix_group` (
`id` int(10) unsigned NOT NULL auto_increment,
`courseid` int(10) unsigned NOT NULL default '0',
`name` varchar(254) NOT NULL default '',
`description` text NOT NULL,
`lang` varchar(10) NOT NULL default 'en',
`picture` int(10) unsigned NOT NULL default '0',
`timecreated` int(10) unsigned NOT NULL default '0',
`timemodified` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `courseid` (`courseid`)
) TYPE=MyISAM COMMENT='Each record is a group in a course.';
# --------------------------------------------------------
#
# Table structure for table `group_members`
#
CREATE TABLE `prefix_group_members` (
`id` int(10) unsigned NOT NULL auto_increment,
`groupid` int(10) unsigned NOT NULL default '0',
`userid` int(10) unsigned NOT NULL default '0',
`timeadded` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `groupid` (`groupid`)
) TYPE=MyISAM COMMENT='Lists memberships of users to groups';
# --------------------------------------------------------
#
# Table structure for table `log`
#

View file

@ -310,6 +310,36 @@ function main_upgrade($oldversion=0) {
}
if ($oldversion < 2003121600) {
execute_sql("CREATE TABLE {$CFG->prefix}group (
id SERIAL PRIMARY KEY,
courseid integer NOT NULL default '0',
name varchar(255) NOT NULL default '',
description text,
lang varchar(10) NOT NULL default '',
picture integer NOT NULL default '0',
timecreated integer NOT NULL default '0',
timemodified integer NOT NULL default '0'
)");
execute_sql("CREATE INDEX {$CFG->prefix}group_idx ON {$CFG->prefix}group (courseid) ");
execute_sql("CREATE TABLE {$CFG->prefix}group_members (
id SERIAL PRIMARY KEY,
groupid integer NOT NULL default '0',
userid integer NOT NULL default '0',
timeadded integer NOT NULL default '0'
)");
execute_sql("CREATE INDEX {$CFG->prefix}group_members_idx ON {$CFG->prefix}group_members (groupid) ");
}
if ($oldversion < 2003122600) {
table_column("course", "", "groupmode", "integer", "4", "unsigned", "0", "", "visible");
table_column("course", "", "groupmodeforce", "integer", "4", "unsigned", "0", "", "groupmode");
}
return $result;
}
?>

View file

@ -29,6 +29,8 @@ CREATE TABLE prefix_course (
maxbytes integer NOT NULL default '0',
showreports integer NOT NULL default '0',
visible integer NOT NULL default '1',
groupmode integer NOT NULL default '0',
groupmodeforce integer NOT NULL default '0',
timecreated integer NOT NULL default '0',
timemodified integer NOT NULL default '0'
);
@ -77,6 +79,28 @@ CREATE TABLE prefix_course_sections (
visible integer NOT NULL default '1'
);
CREATE TABLE prefix_group (
id SERIAL PRIMARY KEY,
courseid integer NOT NULL default '0',
name varchar(255) NOT NULL default '',
description text,
lang varchar(10) NOT NULL default '',
picture integer NOT NULL default '0',
timecreated integer NOT NULL default '0',
timemodified integer NOT NULL default '0'
);
CREATE INDEX prefix_group_idx ON prefix_group (courseid);
CREATE TABLE prefix_group_members (
id SERIAL PRIMARY KEY,
groupid integer NOT NULL default '0',
userid integer NOT NULL default '0',
timeadded integer NOT NULL default '0'
);
CREATE INDEX prefix_group_members_idx ON prefix_group_members (groupid);
CREATE TABLE prefix_log (
id SERIAL PRIMARY KEY,
time integer NOT NULL default '0',