--- loncom/interface/loncreatecourse.pm 2004/11/23 06:58:34 1.70 +++ loncom/interface/loncreatecourse.pm 2005/11/15 20:17:00 1.84 @@ -1,7 +1,7 @@ # The LearningOnline Network # Create a course # -# $Id: loncreatecourse.pm,v 1.70 2004/11/23 06:58:34 raeburn Exp $ +# $Id: loncreatecourse.pm,v 1.84 2005/11/15 20:17:00 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -86,11 +86,10 @@ 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'}, - $crsdata{'home'}, 'output',$which); } @@ -138,6 +137,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'}); } @@ -190,7 +192,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; } } @@ -212,11 +214,17 @@ sub copyuserfiles { sub copydbfiles { my ($origcrsid,$newcrsid)=@_; + + my ($origcrs_discussion) = ($origcrsid=~m|^/(.*)|); + $origcrs_discussion=~s|/|_|g; foreach (&crsdirlist($origcrsid)) { if ($_=~/\.db$/) { unless - ($_=~/^(nohist\_|discussiontimes|classlist|versionupdate|resourcedata)/) { + ($_=~/^(nohist\_|discussiontimes|classlist|versionupdate|resourcedata|\Q$origcrs_discussion\E|slots|slot_reservations|(grading|review)queue|CODEs)/) { ©db($origcrsid,$newcrsid,$_); + my $histfile=$_; + $histfile=~s/\.db$/\.hist/; + ©file($origcrsid,$newcrsid,$histfile); } } } @@ -235,7 +243,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{'irsp'}
@@ -544,11 +562,6 @@ $lt{'nccl'}
-
-
@@ -564,22 +577,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(<