--- loncom/interface/loncreatecourse.pm 2004/07/02 00:27:44 1.63
+++ 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.63 2004/07/02 00:27:44 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
@@ -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{'cc'}
-$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(<
+$html
The LearningOnline Network with CAPA
$bodytag
ENDENHEAD
+
+ my $args = {
+ ccuname => $ccuname,
+ ccdomain => $ccdomain,
+ cdescr => $env{'form.title'},
+ curl => $env{'form.topmap'},
+ course_domain => $env{'request.role.domain'},
+ course_home => $env{'form.course_home'},
+ nonstandard => $env{'form.nonstandard'},
+ crscode => $env{'form.crscode'},
+ clonecourse => $env{'form.clonecourse'},
+ clonedomain => $env{'form.clonedomain'},
+ crsid => $env{'form.crsid'},
+ curruser => $env{'user.name'},
+ crssections => $env{'form.crssections'},
+ crsxlist => $env{'form.crsxlist'},
+ autoadds => $env{'form.autoadds'},
+ autodrops => $env{'form.autodrops'},
+ notify_owner => $env{'form.notify_owner'},
+ notify_dc => $env{'form.notify_dc'},
+ no_end_date => $env{'form.no_end_date'},
+ showphotos => $env{'form.showphotos'},
+ authtype => $authtype,
+ autharg => $autharg,
+ enrollstart => $enrollstart,
+ enrollend => $enrollend,
+ startaccess => $startaccess,
+ endaccess => $endaccess,
+ setpolicy => $env{'form.setpolicy'},
+ setcontent => $env{'form.setcontent'},
+ reshome => $env{'form.reshome'},
+ setkeys => $env{'form.setkeys'},
+ keyauth => $env{'form.keyauth'},
+ disresdis => $env{'form.disresdis'},
+ disablechat => $env{'form.disablechat'},
+ openall => $env{'form.openall'},
+ firstres => $env{'form.firstres'}
+ };
+
#
# Verify data
#
@@ -533,54 +669,84 @@ ENDENHEAD
}
# Check the proposed home server for the course
my %host_servers = &Apache::loncommon::get_library_servers
- ($ENV{'request.role.domain'});
- if (! exists($host_servers{$ENV{'form.course_home'}})) {
+ ($env{'request.role.domain'});
+ if (! exists($host_servers{$env{'form.course_home'}})) {
$r->print(&mt('Invalid home server for course').': '.
- $ENV{'form.course_home'}.'