mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 00:46:50 +02:00
Course request feature. Allows normal users to 'request' courses they would like created,
and admins can approve or reject pending courses. Also, contains the ability to restrict activity modules on a per course basic. Strict config options: enable restricting modules at ALL (for all courses, no courses, requested courses), what to do by default for newly created courses as well as what modules to enable for above category by default. This feature was created for the aim of building a community side to moodle - for institutes that have strict courses and enrolments, allowing normal users to request interest courses is a good feature, but some modules may be redundant (assignment, lesson, quiz etc) Please test!
This commit is contained in:
parent
575122f98e
commit
0705ff843b
18 changed files with 690 additions and 11 deletions
|
@ -1492,6 +1492,34 @@ function main_upgrade($oldversion=0) {
|
|||
table_column('course', '', 'currency', 'char', '3', '', $defaultcurrency, 'not null', 'cost');
|
||||
}
|
||||
|
||||
if ($oldversion < 2005081600) { //set up the course requests table
|
||||
modify_database('',"CREATE TABLE `prefix_course_request` (
|
||||
`id` int(10) unsigned NOT NULL auto_increment,
|
||||
`fullname` varchar(254) NOT NULL default '',
|
||||
`shortname` varchar(15) NOT NULL default '',
|
||||
`summary` text NOT NULL,
|
||||
`reason` text NOT NULL,
|
||||
`requester` int(10) NOT NULL default 0,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `shortname` (`shortname`)
|
||||
) TYPE=MyISAM;");
|
||||
|
||||
table_column('course','','requested');
|
||||
}
|
||||
|
||||
if ($oldversion < 2005081601) {
|
||||
modify_database('',"CREATE TABLE `prefix_course_allowed_modules` (
|
||||
`id` int(10) unsigned NOT NULL auto_increment,
|
||||
`course` int(10) unsigned NOT NULL default 0,
|
||||
`module` int(10) unsigned NOT NULL default 0,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `course` (`course`),
|
||||
KEY `module` (`module`)
|
||||
) TYPE=MyISAM;");
|
||||
|
||||
table_column('course','','restrictmodules','int','1','','0','not null');
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
|
|
@ -77,6 +77,8 @@ CREATE TABLE `prefix_course` (
|
|||
`timecreated` int(10) unsigned NOT NULL default '0',
|
||||
`timemodified` int(10) unsigned NOT NULL default '0',
|
||||
`metacourse` int(1) unsigned NOT NULL default '0',
|
||||
`requested` int(1) unsigned NOT NULL default '0',
|
||||
`restrictmodules` int(1) unsigned NOT NULL default '0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `category` (`category`),
|
||||
KEY `idnumber` (`idnumber`),
|
||||
|
@ -174,6 +176,37 @@ CREATE TABLE `prefix_course_sections` (
|
|||
) TYPE=MyISAM;
|
||||
# --------------------------------------------------------
|
||||
|
||||
#
|
||||
# Table structure for table `course_request`
|
||||
#
|
||||
|
||||
CREATE TABLE `prefix_course_request` (
|
||||
`id` int(10) unsigned NOT NULL auto_increment,
|
||||
`fullname` varchar(254) NOT NULL default '',
|
||||
`shortname` varchar(15) NOT NULL default '',
|
||||
`summary` text NOT NULL,
|
||||
`reason` text NOT NULL,
|
||||
`requester` int(10) NOT NULL default 0,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `shortname` (`shortname`)
|
||||
) TYPE=MyISAM;
|
||||
# ---------------------------------------------------------
|
||||
|
||||
#
|
||||
# Table structure for table `coursre_allowed_modules`
|
||||
#
|
||||
|
||||
CREATE TABLE `prefix_course_allowed_modules` (
|
||||
`id` int(10) unsigned NOT NULL auto_increment,
|
||||
`course` int(10) unsigned NOT NULL default 0,
|
||||
`module` int(10) unsigned NOT NULL default 0,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `course` (`course`),
|
||||
KEY `module` (`module`)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
------------------------------------------------------------
|
||||
|
||||
#
|
||||
# Table structure for table `event`
|
||||
#
|
||||
|
|
|
@ -1236,6 +1236,34 @@ function main_upgrade($oldversion=0) {
|
|||
table_column('course', '', 'currency', 'char', '3', '', $defaultcurrency, 'not null', 'cost');
|
||||
}
|
||||
|
||||
if ($oldversion < 2005081600) { //set up the course requests table
|
||||
modify_database('',"CREATE TABLE prefix_course_request (
|
||||
id SERIAL PRIMARY KEY,
|
||||
fullname varchar(254) NOT NULL default '',
|
||||
shortname varchar(15) NOT NULL default '',
|
||||
summary text NOT NULL default '',
|
||||
reason text NOT NULL default '',
|
||||
requester INTEGER NOT NULL default 0
|
||||
);");
|
||||
|
||||
modify_database('','CREATE INDEX prefix_course_request_shortname_idx ON prefix_course_request (shortname);');
|
||||
|
||||
table_column('course','','requested');
|
||||
}
|
||||
|
||||
if ($oldversion < 2005081601) {
|
||||
modify_database('','CREATE TABLE prefix_course_allowed_modules (
|
||||
id SERIAL PRIMARY KEY,
|
||||
course INTEGER NOT NULL default 0,
|
||||
module INTEGER NOT NULL default 0
|
||||
);');
|
||||
|
||||
modify_database('','CREATE INDEX prefix_course_allowed_modules_course_idx ON prefix_course_allowed_modules (course);');
|
||||
modify_database('','CREATE INDEX prefix_course_allowed_modules_module_idx ON prefix_course_allowed_modules (module);');
|
||||
table_column('course','','restrictmodules','int','1','','0','not null');
|
||||
}
|
||||
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
|
|
@ -47,7 +47,9 @@ CREATE TABLE prefix_course (
|
|||
currency varchar(3) NOT NULL default 'USD',
|
||||
timecreated integer NOT NULL default '0',
|
||||
timemodified integer NOT NULL default '0',
|
||||
metacourse integer NOT NULL default '0'
|
||||
metacourse integer NOT NULL default '0',
|
||||
requested integer NOT NULL default '0',
|
||||
restrictmodules integer NOT NULL default '0'
|
||||
);
|
||||
|
||||
CREATE UNIQUE INDEX prefix_course_category_sortorder_uk ON prefix_course (category,sortorder);
|
||||
|
@ -112,6 +114,26 @@ CREATE TABLE prefix_course_sections (
|
|||
|
||||
CREATE INDEX prefix_course_sections_coursesection_idx ON prefix_course_sections (course,section);
|
||||
|
||||
CREATE TABLE prefix_course_request (
|
||||
id SERIAL PRIMARY KEY,
|
||||
fullname varchar(254) NOT NULL default '',
|
||||
shortname varchar(15) NOT NULL default '',
|
||||
summary text NOT NULL default '',
|
||||
reason text NOT NULL default '',
|
||||
requester INTEGER NOT NULL default 0
|
||||
);
|
||||
|
||||
CREATE INDEX prefix_course_request_shortname_idx ON prefix_course_request (shortname);
|
||||
|
||||
CREATE TABLE prefix_course_allowed_modules (
|
||||
id SERIAL PRIMARY KEY,
|
||||
course INTEGER NOT NULL default 0,
|
||||
module INTEGER NOT NULL default 0
|
||||
);
|
||||
|
||||
CREATE INDEX prefix_course_allowed_modules_course_idx ON prefix_course_allowed_modules (course);
|
||||
CREATE INDEX prefix_course_allowed_modules_module_idx ON prefix_course_allowed_modules (module);
|
||||
|
||||
CREATE TABLE prefix_event (
|
||||
id SERIAL PRIMARY KEY,
|
||||
name varchar(255) NOT NULL default '',
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue