--- loncom/interface/loncreatecourse.pm 2003/12/09 00:43:47 1.43 +++ loncom/interface/loncreatecourse.pm 2003/12/11 02:42:38 1.44 @@ -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::lonratedt; 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 @@ ENDENHEAD # # 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 @@ ENDENHEAD } 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 @@ ENDENHEAD } 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(''. + "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).


\n"); + } } my $startdate = &Apache::lonhtmlcommon::get_date_from_form('startdate'); my $enddate = &Apache::lonhtmlcommon::get_date_from_form('enddate');