[LON-CAPA-cvs] cvs: loncom /interface loncreatecourse.pm

raeburn lon-capa-cvs@mail.lon-capa.org
Thu, 11 Dec 2003 02:42:38 -0000


raeburn		Wed Dec 10 21:42:38 2003 EDT

  Modified files:              
    /loncom/interface	loncreatecourse.pm 
  Log:
  Added calls to &localenroll:new_course to add course sections and crosslistings to LONCAPA table, and to check if course owner - i.e, the initial course coordinator - is a valid faculty instructor for these sections and crosslistings, according to RO CLIFMS table.
  
  
Index: loncom/interface/loncreatecourse.pm
diff -u loncom/interface/loncreatecourse.pm:1.43 loncom/interface/loncreatecourse.pm:1.44
--- loncom/interface/loncreatecourse.pm:1.43	Mon Dec  8 19:43:47 2003
+++ loncom/interface/loncreatecourse.pm	Wed Dec 10 21:42:38 2003
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Create a course
 #
-# $Id: loncreatecourse.pm,v 1.43 2003/12/09 00:43:47 raeburn Exp $
+# $Id: loncreatecourse.pm,v 1.44 2003/12/11 02:42:38 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -49,6 +49,8 @@
 use Apache::londocs;
 use Apache::lonlocal;
 use Apache::londropadd;
+use lib '/home/httpd/lib/perl';
+use localenroll;
 
 # ================================================ Get course directory listing
 
@@ -498,6 +500,7 @@
 #
 # Set environment (will override cloned, if existing)
 #
+    my @affiliates = ();  # Used to accumulate sections and crosslistings
     if ($ENV{'form.crsid'}) {
         $cenv{'courseid'}=$ENV{'form.crsid'};
     }
@@ -506,9 +509,33 @@
     }
     if ($ENV{'form.crssections'}) {
         $cenv{'internal.sectionnums'}=$ENV{'form.crssections'};
+        my @sections = ();
+        if ($cenv{'internal.sectionnums'} =~ m/,/) {
+            @sections = split/,/,$cenv{'internal.sectionnums'};
+        } else {
+            $sections[0] = $cenv{'internal.sectionnums'};
+        }
+        if (@sections > 0) {
+            foreach (@sections) {
+                my ($sec,$gp) = split/:/,$_; 
+                push @affiliates,$ENV{'form.crscode'}.$sec;
+            }
+        }
     }
     if ($ENV{'form.crsxlist'}) {
-        $cenv{'internal.crosslistings'}=$ENV{'form.crsxlist'};
+       $cenv{'internal.crosslistings'}=$ENV{'form.crsxlist'};
+       my @xlists = ();
+        if ($cenv{'internal.crosslistings'} =~ m/,/) {
+            @xlists = split/,/,$cenv{'internal.crosslistings'};
+        } else {
+            $xlists[0] = $cenv{'internal.crosslistings'};
+        }
+        if (@xlists > 0) {
+            foreach (@xlists) {
+                my ($xl,$gp) = split/:/,$_;
+                push @affiliates,$xl;
+            }
+        }
     }
     if ($ENV{'form.autoadds'}) {
         $cenv{'internal.autoadds'}=$ENV{'form.autoadds'};
@@ -523,6 +550,26 @@
     }
     if ($ccuname) {
         $cenv{'internal.courseowner'} = $ccuname;
+    } else {
+        $cenv{'internal.courseowner'} = $ENV{'user.name'};
+    }
+    if (@affiliates > 0) {
+        my @badclasses = ();
+        foreach my $class (@affiliates) {
+            my $addcheck =  &localenroll::new_course($class,$cenv{'internal.courseowner'});
+            unless ($addcheck eq 'ok') {
+                print STDERR "$class - $cenv{'internal.courseowner'} - $addcheck\n"; 
+                push @badclasses, $class; 
+            }
+        }
+        if (@badclasses > 0) {
+            $r->print('<font color="red">'.
+                      "The courses listed below were included as sections or crosslistings affiliated with your new LON-CAPA course. If automated course roster updates are enabled for this class, these particular sections/crosslistings will not contribute towards enrollment, because the user identified as the course owner for this LON-CAPA course ($cenv{'internal.courseowner'}) - does not have rights to access enrollment in these classes (as determined by your instititution's policies on access to official classlists).<br/><ul>\n");
+            foreach (@badclasses) {
+                $r->print("<li>$_</li>\n");
+            }
+            $r->print ("</ul><br/><br/></font>\n");
+        }
     }
     my $startdate = &Apache::lonhtmlcommon::get_date_from_form('startdate');
     my $enddate   = &Apache::lonhtmlcommon::get_date_from_form('enddate');