--- loncom/interface/loncreatecourse.pm 2004/07/01 21:54:24 1.62 +++ loncom/interface/loncreatecourse.pm 2005/04/07 06:56:23 1.78 @@ -1,7 +1,7 @@ -#meserver The LearningOnline Network +# The LearningOnline Network # Create a course # -# $Id: loncreatecourse.pm,v 1.62 2004/07/01 21:54:24 www Exp $ +# $Id: loncreatecourse.pm,v 1.78 2005/04/07 06:56:23 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -38,7 +38,6 @@ use Apache::londocs; use Apache::lonlocal; use Apache::londropadd; use lib '/home/httpd/lib/perl'; -use localenroll; # ================================================ Get course directory listing @@ -53,8 +52,8 @@ sub crsdirlist { sub innercrsdirlist { my ($courseid,$which,$path)=@_; my $dirptr=16384; - unless ($which) { $which=''; } - unless ($path) { $path=''; } + unless ($which) { $which=''; } else { $which.='/'; } + unless ($path) { $path=''; } else { $path.='/'; } my %crsdata=&Apache::lonnet::coursedescription($courseid); my @listing=&Apache::lonnet::dirlist ($which,$crsdata{'domain'},$crsdata{'num'}, @@ -64,11 +63,11 @@ sub innercrsdirlist { my @unpackline = split (/\&/,$_); if ($unpackline[3]&$dirptr) { # is a directory, recurse - &innercrsdirlist($courseid,$which.'/'.$unpackline[0], - $path.'/'.$unpackline[0]); + &innercrsdirlist($courseid,$which.$unpackline[0], + $path.$unpackline[0]); } else { # is a file, put into output - push (@output,$path.'/'.$unpackline[0]); + push (@output,$path.$unpackline[0]); } } } @@ -87,7 +86,7 @@ sub readfile { # ============================================================ Write a userfile sub writefile { - (my $courseid, my $which,$ENV{'form.output'})=@_; + (my $courseid, my $which,$env{'form.output'})=@_; my %crsdata=&Apache::lonnet::coursedescription($courseid); return &Apache::lonnet::finishuserfileupload( $crsdata{'num'},$crsdata{'domain'}, @@ -123,7 +122,9 @@ sub copyfile { &readfile($origcrsid,$which), ( '/uploaded/'.$origcrsdata{'domain'}.'/'.$origcrsdata{'num'}.'/' - => '/uploaded/'. $newcrsdata{'domain'}.'/'. $newcrsdata{'num'}.'/' + => '/uploaded/'. $newcrsdata{'domain'}.'/'. $newcrsdata{'num'}.'/', + '/public/'.$origcrsdata{'domain'}.'/'.$origcrsdata{'num'}.'/' + => '/public/'. $newcrsdata{'domain'}.'/'. $newcrsdata{'num'}.'/' ))); } } @@ -137,6 +138,9 @@ sub copydb { my %newcrsdata= &Apache::lonnet::coursedescription($newcrsid); my %data=&Apache::lonnet::dump ($which,$origcrsdata{'domain'},$origcrsdata{'num'}); + foreach my $key (keys(%data)) { + if ($key=~/^internal./) { delete($data{$key}); } + } return &Apache::lonnet::put ($which,\%data,$newcrsdata{'domain'},$newcrsdata{'num'}); } @@ -189,7 +193,7 @@ sub copyresourcedb { my $thiskey=$_; $thiskey=~s/^$origcrsid/$newcrsid/; $newdata{$thiskey}=$data{$_}; - if ($data{$_.'.type'}=~/^date/) { + if ($data{$_.'.type'}=~/^date_(start|end)$/) { $newdata{$thiskey}=$newdata{$thiskey}+$delta; } } @@ -202,7 +206,9 @@ sub copyresourcedb { sub copyuserfiles { my ($origcrsid,$newcrsid)=@_; foreach (&crsdirlist($origcrsid,'userfiles')) { - ©file($origcrsid,$newcrsid,$_); + if ($_ !~m|^scantron_|) { + ©file($origcrsid,$newcrsid,$_); + } } } # ========================================================== Copy all userfiles @@ -232,7 +238,7 @@ sub copycoursefiles { sub print_course_creation_page { my $r=shift; - my $defdom=$ENV{'request.role.domain'}; + my $defdom=$env{'request.role.domain'}; my %host_servers = &Apache::loncommon::get_library_servers($defdom); my $course_home = '
$lt{'aadd'} -$lt{'yes'} $lt{'no'} + +
$lt{'audr'} -$lt{'yes'} $lt{'no'} + +
$lt{'dacu'} $enroll_table @@ -469,24 +524,43 @@ $locform
$lt{'nech'}
$lt{'nccl'}
-$lt{'yes'} $lt{'no'}
-
-$lt{'irsp'} $lt{'yes'} $lt{'no'}
+
+
+
+$lt{'ndcl'}
+
+
+
+$lt{'irsp'} + +
-$lt{'user'}: -
-$lt{'dmn'}: $domform -
-$lt{'ierc'}: - + +
+
- +
@@ -498,22 +572,84 @@ 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'}; + my $ccuname=$env{'form.ccuname'}; + my $ccdomain=$env{'form.ccdomain'}; $ccuname=~s/\W//g; $ccdomain=~s/\W//g; - my $cdescr=$ENV{'form.title'}; - my $curl=$ENV{'form.topmap'}; + + 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'); + + my $autharg; + my $authtype; + + if ($env{'form.login'} eq 'krb') { + $authtype = 'krb'; + $authtype .=$env{'form.krbver'}; + $autharg = $env{'form.krbarg'}; + } elsif ($env{'form.login'} eq 'int') { + $authtype ='internal'; + if ((defined($env{'form.intarg'})) && ($env{'form.intarg'})) { + $autharg = $env{'form.intarg'}; + } + } elsif ($env{'form.login'} eq 'loc') { + $authtype = 'localauth'; + if ((defined($env{'form.locarg'})) && ($env{'form.locarg'})) { + $autharg = $env{'form.locarg'}; + } + } + + my $logmsg; + my $html=&Apache::lonxml::xmlbegin(); my $bodytag=&Apache::loncommon::bodytag('Create a New Course'); $r->print(<