]> git.mjollnir.org Git - moodle.git/commitdiff
Update for meta courses. New table renamed from meta_course to course_meta (and...
authormjollnir_ <mjollnir_>
Tue, 25 Jan 2005 04:33:02 +0000 (04:33 +0000)
committermjollnir_ <mjollnir_>
Tue, 25 Jan 2005 04:33:02 +0000 (04:33 +0000)
13 files changed:
blocks/admin/block_admin.php
course/edit.html
course/edit.php
course/importstudents.php
course/lib.php
course/student.php
lib/datalib.php
lib/db/mysql.php
lib/db/mysql.sql
lib/db/postgres7.php
lib/db/postgres7.sql
lib/moodlelib.php
version.php

index 2535fe2db3353482daac266fa5fe1c1849951955..986f338b815a184e17d2105b0e1ec2d1db566973 100644 (file)
@@ -104,7 +104,7 @@ class block_admin extends block_base {
                 if (!$course->students) {
                     $course->students = get_string('defaultcoursestudents');
                 } 
-                if (!$course->meta_course) {
+                if (!$course->metacourse) {
                     $this->content->items[]='<a href="student.php?id='.$this->instance->pageid.'">'.$course->students.'...</a>';
                     $this->content->icons[]='<img src="'.$CFG->pixpath.'/i/users.gif" height="16" width="16" alt="" />';
                 }
index 317b5160cbe5c934bd8d178034c096d3658cac2d..7d4f15eab9170d1a5f09e52a8a7be5e427559e89 100644 (file)
@@ -15,8 +15,8 @@
     if (!isset($form->enrolperiod)) {
         $form->enrolperiod = 0;
     }
-    if (!isset($form->meta_course)) {
-        $form->meta_course = 0;
+    if (!isset($form->metacourse)) {
+        $form->metacourse = 0;
     }
 ?>
 <form method="post" action="edit.php" name="form">
       if (empty($disable_meta)) {
           $meta[0] = get_string('no');
           $meta[1] = get_string('yes');
-          choose_from_menu($meta,"meta_course",$form->meta_course,"","","");
+          choose_from_menu($meta,"metacourse",$form->metacourse,"","","");
       } else {
-          echo ((empty($form->meta_course)) ? get_string("no") : get_string("yes"));
+          echo ((empty($form->metacourse)) ? get_string("no") : get_string("yes"));
          echo " - $disable_meta ";
       } ?>&nbsp;<?php print_string("managemetaexplan"); ?>
     </td>
index 83e728cedf90681d890a9c7b41b74f001e4f6674..a0070b11f0b9609824083e6d96cdc03347da3b23 100644 (file)
@@ -24,8 +24,8 @@
         if (course_in_meta($course)) {
             $disable_meta = get_string('metaalreadyinmeta');
         }
-        else if ($course->meta_course) {
-            if (count_records("meta_course","parent_course",$course->id) > 0) {
+        else if ($course->metacourse) {
+            if (count_records("course_meta","parent_course",$course->id) > 0) {
                 $disable_meta = get_string('metaalreadyhascourses');
             }
         }
index 8ec7b12163183c19b09c473ed9dc06a37dfa92e5..dfbee66204d1cd42324a1aff7872a39fee453003 100644 (file)
@@ -23,7 +23,7 @@
 
     require_login($course->id);
 
-    if (!$course->meta_course) {
+    if (!$course->metacourse) {
         redirect("$CFG->wwwroot/course/student.php?id=$course->id");
     }
 
index 2bcfa7aa359827ac397701f6a83f355c369c43cc..22c6dee3514f646d8a6ae73120f85c1f6577b0e6 100644 (file)
@@ -1886,7 +1886,7 @@ function course_format_name ($course,$max=100) {
  * This function will return true if the given course is a child course at all
  */
 function course_in_meta ($course) {
-    return record_exists("meta_course","child_course",$course->id);
+    return record_exists("course_meta","child_course",$course->id);
 }
 
 ?>
index 666a64063321ca4db0755574015d1d769d71c995..132a38a147ba6814bc158c8fdf6fb17e2ec755e8 100644 (file)
@@ -18,7 +18,7 @@
         error("Course ID was incorrect (can't find it)");
     }
 
-    if ($course->meta_course) {
+    if ($course->metacourse) {
         redirect("$CFG->wwwroot/course/importstudents.php?id=$course->id");
     }
 
index ab54b3d5bbeda78a2aa245953569adf6c688f8c6..2d02df3277b094d1746c5a2a5f7856689f469f99 100644 (file)
@@ -1300,7 +1300,7 @@ function get_creators() {
 function get_courses_in_metacourse($metacourseid) {
     global $CFG;
 
-    $sql = "SELECT c.id,c.shortname,c.fullname FROM {$CFG->prefix}course c, {$CFG->prefix}meta_course mc WHERE mc.parent_course = $metacourseid
+    $sql = "SELECT c.id,c.shortname,c.fullname FROM {$CFG->prefix}course c, {$CFG->prefix}course_meta mc WHERE mc.parent_course = $metacourseid
         AND mc.child_course = c.id";
 
     return get_records_sql($sql);
@@ -1318,7 +1318,7 @@ function get_courses_notin_metacourse($metacourseid,$count=false) {
     else {
         $sql = "SELECT c.id,c.shortname,c.fullname";
     }
-    $sql .= " FROM {$CFG->prefix}course c LEFT  JOIN {$CFG->prefix}meta_course mc ON mc.child_course = c.id
+    $sql .= " FROM {$CFG->prefix}course c LEFT  JOIN {$CFG->prefix}course_meta mc ON mc.child_course = c.id
      WHERE (mc.parent_course IS NULL OR mc.parent_course != $metacourseid) AND c.id != $metacourseid AND c.id != $site->id";
 
     return get_records_sql($sql);
index 6f19eb0720a19d0d6a2aa9fb785d3b8ba42c101d..f7ab81b8c0b82e93c9021df19bb260fd584f8fbd 100644 (file)
@@ -1118,6 +1118,23 @@ function main_upgrade($oldversion=0) {
         table_column('course','','meta_course','integer','1','','0','not null');
     }
 
+    if ($oldversion < 2005012501) { 
+        execute_sql("DROP TABLE {$CFG->prefix}meta_course",false); // drop silently
+        execute_sql("ALTER TABLE {$CFG->prefix}course DROP COLUMN meta_course",false); // drop silently
+        
+        // add new table for meta courses.
+        modify_database("","CREATE TABLE `prefix_course_meta` (
+            `id` int(1) unsigned NOT NULL auto_increment,
+            `parent_course` int(10) NOT NULL default 0,
+            `child_course` int(10) NOT NULL default 0,
+            PRIMARY KEY (`id`),
+            KEY `parent_course` (parent_course),
+            KEY `child_course` (child_course)
+        );");
+        // add flag to course field
+        table_column('course','','metacourse','integer','1','','0','not null');
+    }
+
     return $result;
 }
 
index 369c1cefd61f3217692d5cd530cb67dff8ab6a5b..dc1db4c98f3e5b484fcb9dc7ae0e253fe45f74ae 100644 (file)
@@ -59,7 +59,7 @@ CREATE TABLE `prefix_course` (
   `cost` varchar(10) NOT NULL default '',
   `timecreated` int(10) unsigned NOT NULL default '0',
   `timemodified` int(10) unsigned NOT NULL default '0',
-  `meta_course` int(1) unsigned NOT NULL default '0',
+  `metacourse` int(1) unsigned NOT NULL default '0',
   PRIMARY KEY  (`id`),
   KEY `category` (`category`),
   KEY `idnumber` (`idnumber`),
@@ -551,7 +551,7 @@ CREATE TABLE `prefix_user_coursecreators` (
 ) TYPE=MyISAM COMMENT='One record per course creator';
 
 
-CREATE TABLE `prefix_meta_course` (
+CREATE TABLE `prefix_course_meta` (
  `id` int(1) unsigned NOT NULL auto_increment,
  `parent_course` int(10) NOT NULL default 0,
  `child_course` int(10) NOT NULL default 0,
index a98b1d1f58e68e49e0ad7a441d6b206a061118f1..aac11d7983a069460459b3ee7a63fe190e4f5407 100644 (file)
@@ -890,6 +890,21 @@ function main_upgrade($oldversion=0) {
         table_column('course','','meta_course','integer','1','','0','not null');
     }
 
+    if ($oldversion < 2005012501) { //fix table names for consistency
+        execute_sql("DROP TABLE {$CFG->prefix}meta_course",false); // drop silently
+        execute_sql("ALTER TABLE {$CFG->prefix}course DROP COLUMN meta_course",false); // drop silently
+        
+        modify_database("","CREATE TABLE prefix_course_meta (
+                id SERIAL primary key,
+                parent_course integer NOT NULL,
+                child_course integer NOT NULL
+             );");
+
+        modify_database("","CREATE INDEX prefix_course_meta_parent_idx ON prefix_course_meta (parent_course);");
+        modify_database("","CREATE INDEX prefix_course_meta_child_idx ON prefix_course_meta (child_course);");
+        table_column('course','','metacourse','integer','1','','0','not null');
+    }
+
     return $result;
 }
 
index 9cf09a459cc50f90a7dc7cc55fd503209f02fe1f..e2707caa4193d0b3c5ae4c4642f0dcec16145477 100644 (file)
@@ -37,7 +37,7 @@ CREATE TABLE prefix_course (
    cost varchar(10) NOT NULL default '',
    timecreated integer NOT NULL default '0',
    timemodified integer NOT NULL default '0',
-   meta_course integer NOT NULL default '0'
+   metacourse integer NOT NULL default '0'
 );
 
 CREATE UNIQUE INDEX prefix_course_category_sortorder_uk ON prefix_course (category,sortorder);
@@ -381,14 +381,14 @@ CREATE TABLE prefix_user_coursecreators (
    userid int8  NOT NULL default '0'
 );
 
-CREATE TABLE prefix_meta_course (
+CREATE TABLE prefix_course_meta (
        id SERIAL primary key,
        parent_course integer NOT NULL,
        child_course integer NOT NULL
 );
 
-CREATE INDEX prefix_meta_course_parent_idx ON prefix_meta_course (parent_course);
-CREATE INDEX prefix_meta_course_child_idx ON prefix_meta_course (child_course);
+CREATE INDEX prefix_course_meta_parent_idx ON prefix_course_meta (parent_course);
+CREATE INDEX prefix_course_meta_child_idx ON prefix_course_meta (child_course);
 
 INSERT INTO prefix_log_display VALUES ('user', 'view', 'user', 'firstname||\' \'||lastname');
 INSERT INTO prefix_log_display VALUES ('course', 'user report', 'user', 'firstname||\' \'||lastname');
index f09dea45a55189f54d6a56cd73217366e1c4f38d..308d82919e4b6ca48a613517a4e65014185a622e 100644 (file)
@@ -1045,7 +1045,7 @@ function sync_metacourses() {
 
     global $CFG;
 
-    if (!$courses = get_records_sql("SELECT DISTINCT parent_course,1 FROM {$CFG->prefix}meta_course")) {
+    if (!$courses = get_records_sql("SELECT DISTINCT parent_course,1 FROM {$CFG->prefix}course_meta")) {
         return;
     }
     
@@ -1068,7 +1068,7 @@ function sync_metacourse($metacourseid) {
     }
 
 
-    if (count_records('meta_course','parent_course',$metacourseid) == 0) { // if there are no child courses for this meta course, nuke the enrolments
+    if (count_records('course_meta','parent_course',$metacourseid) == 0) { // if there are no child courses for this meta course, nuke the enrolments
         if ($enrolments = get_records('user_students','course',$metacourseid,'','userid,1')) {
             foreach ($enrolments as $enrolment) {
                 unenrol_student($enrolment->userid,$metacourseid);
@@ -1080,7 +1080,7 @@ function sync_metacourse($metacourseid) {
 
     // this will return a list of userids from user_student for enrolments in the metacourse that shouldn't be there.
     $sql = "SELECT DISTINCT parent.userid,1 
-            FROM {$CFG->prefix}meta_course meta 
+            FROM {$CFG->prefix}course_meta meta 
               JOIN {$CFG->prefix}user_students parent 
                 ON meta.parent_course = parent.course 
                 AND meta.parent_course = $metacourseid
@@ -1097,7 +1097,7 @@ function sync_metacourse($metacourseid) {
 
     // this will return a list of userids that need to be enrolled in the metacourse
     $sql = "SELECT DISTINCT child.userid,1 
-            FROM {$CFG->prefix}meta_course meta 
+            FROM {$CFG->prefix}course_meta meta 
               JOIN {$CFG->prefix}user_students child 
                  ON meta.child_course = child.course 
                  AND meta.parent_course = $metacourseid
@@ -1115,7 +1115,7 @@ function sync_metacourse($metacourseid) {
     if ($enrolments = get_records('user_students','course',$metacourseid,'','id,userid')) {
         foreach ($enrolments as $enrol) {
             if ($maxmin = get_record_sql("SELECT min(timestart) AS timestart, max(timeend) AS timeend
-               FROM mdl_user_students u JOIN mdl_meta_course mc ON u.course = mc.child_course WHERE userid = $enrol->userid
+               FROM mdl_user_students u JOIN {$CFG->prefix}course_meta mc ON u.course = mc.child_course WHERE userid = $enrol->userid
                AND mc.parent_course = $metacourseid")) {
                 $enrol->timestart = $maxmin->timestart;
                 $enrol->timeend = $maxmin->timeend;
@@ -1139,10 +1139,10 @@ function add_to_metacourse ($metacourseid, $courseid) {
         return false;
     }
 
-    if (!$record = get_record("meta_course","parent_course",$metacourseid,"child_course",$courseid)) {
+    if (!$record = get_record("course_meta","parent_course",$metacourseid,"child_course",$courseid)) {
         $rec->parent_course = $metacourseid;
         $rec->child_course = $courseid;
-        if (!insert_record('meta_course',$rec)) {
+        if (!insert_record('course_meta',$rec)) {
             return false;
         }
         return sync_metacourse($metacourseid);
@@ -1156,7 +1156,7 @@ function add_to_metacourse ($metacourseid, $courseid) {
  */
 function remove_from_metacourse($metacourseid, $courseid) {
 
-    if (delete_records('meta_course','parent_course',$metacourseid,'child_course',$courseid)) {
+    if (delete_records('course_meta','parent_course',$metacourseid,'child_course',$courseid)) {
         return sync_metacourse($metacourseid);
     }
     return false;
@@ -1763,7 +1763,7 @@ function enrol_student($userid, $courseid, $timestart=0, $timeend=0, $enrol='man
         return false;
     }
     // enrol the student in any parent meta courses...
-    if ($parents = get_records('meta_course','child_course',$courseid)) {
+    if ($parents = get_records('course_meta','child_course',$courseid)) {
         foreach ($parents as $parent) {
             enrol_student($userid, $parent->parent_course,$timestart,$timeend,$enrol);
         }
@@ -1811,7 +1811,7 @@ function unenrol_student($userid, $courseid=0) {
             }
         }
         // enrol the student in any parent meta courses...
-        if ($parents = get_records('meta_course','child_course',$courseid)) {
+        if ($parents = get_records('course_meta','child_course',$courseid)) {
             foreach ($parents as $parent) {
                 unenrol_student($userid, $parent->parent_course);
             }
@@ -2143,20 +2143,20 @@ function remove_course_contents($courseid, $showfeedback=true) {
         $result = false;
     }
 
-    if ($course->meta_course) {
-        delete_records("meta_course","parent_course",$course->id);
+    if ($course->metacourse) {
+        delete_records("course_meta","parent_course",$course->id);
         sync_metacourse($course->id); // have to do it here so the enrolments get nuked. sync_metacourses won't find it without the id.
         if ($showfeedback) {
-            notify("$strdeleted meta_course");
+            notify("$strdeleted course_meta");
         }
     }
     else {
-        if ($parents = get_records("meta_course","child_course",$course->id)) {
+        if ($parents = get_records("course_meta","child_course",$course->id)) {
             foreach ($parents as $parent) {
                 remove_from_metacourse($parent->parent_course,$parent->child_course); // this will do the unenrolments as well.
             }
             if ($showfeedback) {
-                notify("$strdeleted meta_course");
+                notify("$strdeleted course_meta");
             }
         }
     }
index bf9a923e82337ef679193e9049ca097dee830363..44bb0129b6786707c6bb8d8640ce82314b9539a2 100644 (file)
@@ -6,7 +6,7 @@
 // This is compared against the values stored in the database to determine 
 // whether upgrades should be performed (see lib/db/*.php)
 
-   $version = 2005012500;  // YYYYMMDD = date of first major branch release 1.4
+   $version = 2005012501;  // YYYYMMDD = date of first major branch release 1.4
                            //       XY = increments within a single day
 
    $release = '1.5 UNSTABLE DEVELOPMENT';    // Human-friendly version name