--- loncom/interface/loncreatecourse.pm 2003/12/05 21:34:48 1.41 +++ 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.41 2003/12/05 21:34:48 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 @@ -244,8 +246,9 @@ sub print_course_creation_page { &Apache::loncommon::selectcourse_link ('ccrs','clonecourse','clonedomain'); my $coursebrowserjs=&Apache::loncommon::coursebrowser_javascript(); - print STDERR "Course browser js is $coursebrowserjs\n"; - my $date_table = &Apache::londropadd::date_setting_table('','','createcourse'); + my $starttime = time; + my $endtime = time+(6*30*24*60*60); # 6 months from now, approx + my $date_table = &Apache::londropadd::date_setting_table($starttime,$endtime,'createcourse'); my ($krbdef,$krbdefdom) = &Apache::loncommon::get_kerberos_defaults($defdom); my $javascript_validations=&Apache::londropadd::javascript_validations('createcourse',$krbdefdom); @@ -381,10 +384,10 @@ on information available for this specif

Automated adds -Yes No +Yes No

Automated drops -Yes No +Yes No

Duration of automated classlist updates $date_table @@ -401,7 +404,7 @@ $locform Notification of enrollment changes
Notification to course coordinator via LON-CAPA message when enrollment changes occur during the automated update?
Yes No +value="0" checked="true" />No

Include retrieval of student photographs? Yes No

@@ -497,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'}; } @@ -505,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'}; @@ -522,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');