--- loncom/interface/loncreatecourse.pm 2004/05/04 20:43:21 1.55 +++ loncom/interface/loncreatecourse.pm 2004/06/29 14:56:32 1.61 @@ -1,7 +1,7 @@ -# The LearningOnline Network +#meserver The LearningOnline Network # Create a course # -# $Id: loncreatecourse.pm,v 1.55 2004/05/04 20:43:21 www Exp $ +# $Id: loncreatecourse.pm,v 1.61 2004/06/29 14:56:32 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -42,6 +42,7 @@ use localenroll; # ================================================ Get course directory listing +#FIXME - doesn't support directories under /userfiles/ BUG#2999 sub crsdirlist { my ($courseid,$which)=@_; unless ($which) { $which=''; } @@ -51,6 +52,7 @@ sub crsdirlist { &Apache::loncommon::propath($crsdata{'domain'},$crsdata{'num'})); my @output=(); foreach (@listing) { + #FIXME if list is a DIR need to recurse unless ($_=~/^\./) { push (@output,(split(/\&/,$_))[0]); } @@ -236,7 +238,8 @@ sub print_course_creation_page { my $coursebrowserjs=&Apache::loncommon::coursebrowser_javascript(); 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 $enroll_table = &Apache::londropadd::date_setting_table($starttime,$endtime,'create_enrolldates'); + my $access_table = &Apache::londropadd::date_setting_table($starttime,$endtime,'create_defaultdates'); my ($krbdef,$krbdefdom) = &Apache::loncommon::get_kerberos_defaults($defdom); my $javascript_validations=&Apache::londropadd::javascript_validations('createcourse',$krbdefdom); @@ -286,6 +289,8 @@ sub print_course_creation_page { 'dsuc' => "Disable student use of chatrooms", 'acco' => "Access Control", 'snak' => "Students need access key to enter course", + 'kaut' => + 'Key authority (id@domain) if other than course', 'cc' => "Course Coordinator", 'user' => "Username", 'ierc' => "Immediately expire own role as Course Coordinator", @@ -296,6 +301,7 @@ sub print_course_creation_page { 'no' => "No", 'audr' => "Automated drops", 'dacu' => "Duration of automated classlist updates", + 'dacc' => "Default start and end dates for student access", 'psam' => "Please select the authentication mechanism", 'pcda' => "Please choose the default authentication method to be used by new users added to this LON-CAPA domain by the automated enrollment process", 'nech' => "Notification of enrollment changes", @@ -411,7 +417,9 @@ $lt{'asov'}.
$lt{'snak'}:
-
+
+$lt{'kaut'}:
+
@@ -430,8 +438,11 @@ $lt{'aesc'} $lt{'yes'} $lt{'no'}
$lt{'dacu'} -$date_table +$enroll_table
+$lt{'dacc'} +$access_table +
$lt{'psam'}.
@@ -473,6 +484,7 @@ ENDDOCUMENT
sub create_course {
my $r=shift;
my $topurl='/res/'.&Apache::lonnet::declutter($ENV{'form.topmap'});
+ my $this_server = $Apache::lonnet::perlvar{'lonHostID'};
my $ccuname=$ENV{'form.ccuname'};
my $ccdomain=$ENV{'form.ccdomain'};
$ccuname=~s/\W//g;
@@ -519,7 +531,8 @@ ENDENHEAD
my $courseid=&Apache::lonnet::createcourse($ENV{'request.role.domain'},
$cdescr,$curl,
$ENV{'form.course_home'},
- $ENV{'form.nonstandard'});
+ $ENV{'form.nonstandard'},
+ $ENV{'form.crscode'});
# Note: The testing routines depend on this being output; see
# Utils::Course. This needs to at least be output as a comment
@@ -621,7 +634,7 @@ ENDENHEAD
if (@affiliates > 0) {
my @badclasses = ();
foreach my $class (@affiliates) {
- my $addcheck = &localenroll::new_course($class,$cenv{'internal.courseowner'});
+ my $addcheck = &Apache::lonnet::auto_new_course($crsunum,$crsudom,$class,$cenv{'internal.courseowner'});
unless ($addcheck eq 'ok') {
push @badclasses, $class;
}
@@ -635,13 +648,17 @@ ENDENHEAD
$r->print ("
\n");
}
}
- my $startdate = &Apache::lonhtmlcommon::get_date_from_form('startdate');
- my $enddate = &Apache::lonhtmlcommon::get_date_from_form('enddate');
+ my $enrollstart = &Apache::lonhtmlcommon::get_date_from_form('startenroll');
+ my $enrollend = &Apache::lonhtmlcommon::get_date_from_form('endenroll');
+ my $startaccess = &Apache::lonhtmlcommon::get_date_from_form('startaccess');
+ my $endaccess = &Apache::lonhtmlcommon::get_date_from_form('endaccess');
if ($ENV{'form.no_end_date'}) {
- $enddate = 0;
+ $endaccess = 0;
}
- $cenv{'internal.autostart'}=$startdate;
- $cenv{'internal.autoend'}=$enddate;
+ $cenv{'internal.autostart'}=$enrollstart;
+ $cenv{'internal.autoend'}=$enrollend;
+ $cenv{'default_enrollment_start_date'}=$startaccess;
+ $cenv{'default_enrollment_end_date'}=$endaccess;
if ($ENV{'form.showphotos'}) {
$cenv{'internal.showphotos'}=$ENV{'form.showphotos'};
}
@@ -678,9 +695,21 @@ ENDENHEAD
$cenv{'reshome'}=$ENV{'form.reshome'}.'/';
$cenv{'reshome'}=~s/\/+$/\//;
}
+#
+# course has keyed access
+#
if ($ENV{'form.setkeys'}) {
$cenv{'keyaccess'}='yes';
}
+# if specified, key authority is not course, but user
+# only active if keyaccess is yes
+ if ($ENV{'form.keyauth'}) {
+ $ENV{'form.keyauth'}=~s/[^\w\@]//g;
+ if ($ENV{'form.keyauth'}) {
+ $cenv{'keyauth'}=$ENV{'form.keyauth'};
+ }
+ }
+
if ($ENV{'form.disresdis'}) {
$cenv{'pch.roles.denied'}='st';
}