version 1.62, 2004/07/01 21:54:24
|
version 1.71, 2004/11/27 17:23:09
|
Line 1
|
Line 1
|
#meserver The LearningOnline Network |
# The LearningOnline Network |
# Create a course |
# Create a course |
# |
# |
# $Id$ |
# $Id$ |
Line 38 use Apache::londocs;
|
Line 38 use Apache::londocs;
|
use Apache::lonlocal; |
use Apache::lonlocal; |
use Apache::londropadd; |
use Apache::londropadd; |
use lib '/home/httpd/lib/perl'; |
use lib '/home/httpd/lib/perl'; |
use localenroll; |
|
|
|
# ================================================ Get course directory listing |
# ================================================ Get course directory listing |
|
|
Line 53 sub crsdirlist {
|
Line 52 sub crsdirlist {
|
sub innercrsdirlist { |
sub innercrsdirlist { |
my ($courseid,$which,$path)=@_; |
my ($courseid,$which,$path)=@_; |
my $dirptr=16384; |
my $dirptr=16384; |
unless ($which) { $which=''; } |
unless ($which) { $which=''; } else { $which.='/'; } |
unless ($path) { $path=''; } |
unless ($path) { $path=''; } else { $path.='/'; } |
my %crsdata=&Apache::lonnet::coursedescription($courseid); |
my %crsdata=&Apache::lonnet::coursedescription($courseid); |
my @listing=&Apache::lonnet::dirlist |
my @listing=&Apache::lonnet::dirlist |
($which,$crsdata{'domain'},$crsdata{'num'}, |
($which,$crsdata{'domain'},$crsdata{'num'}, |
Line 64 sub innercrsdirlist {
|
Line 63 sub innercrsdirlist {
|
my @unpackline = split (/\&/,$_); |
my @unpackline = split (/\&/,$_); |
if ($unpackline[3]&$dirptr) { |
if ($unpackline[3]&$dirptr) { |
# is a directory, recurse |
# is a directory, recurse |
&innercrsdirlist($courseid,$which.'/'.$unpackline[0], |
&innercrsdirlist($courseid,$which.$unpackline[0], |
$path.'/'.$unpackline[0]); |
$path.$unpackline[0]); |
} else { |
} else { |
# is a file, put into output |
# is a file, put into output |
push (@output,$path.'/'.$unpackline[0]); |
push (@output,$path.$unpackline[0]); |
} |
} |
} |
} |
} |
} |
Line 123 sub copyfile {
|
Line 122 sub copyfile {
|
&readfile($origcrsid,$which), |
&readfile($origcrsid,$which), |
( |
( |
'/uploaded/'.$origcrsdata{'domain'}.'/'.$origcrsdata{'num'}.'/' |
'/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'}.'/' |
))); |
))); |
} |
} |
} |
} |
Line 202 sub copyresourcedb {
|
Line 203 sub copyresourcedb {
|
sub copyuserfiles { |
sub copyuserfiles { |
my ($origcrsid,$newcrsid)=@_; |
my ($origcrsid,$newcrsid)=@_; |
foreach (&crsdirlist($origcrsid,'userfiles')) { |
foreach (&crsdirlist($origcrsid,'userfiles')) { |
©file($origcrsid,$newcrsid,$_); |
if ($_ !~m|^scantron_|) { |
|
©file($origcrsid,$newcrsid,$_); |
|
} |
} |
} |
} |
} |
# ========================================================== Copy all userfiles |
# ========================================================== Copy all userfiles |
Line 250 sub print_course_creation_page {
|
Line 253 sub print_course_creation_page {
|
($ENV{'request.role.domain'},'clonedomain'). |
($ENV{'request.role.domain'},'clonedomain'). |
&Apache::loncommon::selectcourse_link |
&Apache::loncommon::selectcourse_link |
('ccrs','clonecourse','clonedomain'); |
('ccrs','clonecourse','clonedomain'); |
my $coursebrowserjs=&Apache::loncommon::coursebrowser_javascript(); |
my $coursebrowserjs=&Apache::loncommon::coursebrowser_javascript($ENV{'request.role.domain'}); |
my $starttime = time; |
my $starttime = time; |
my $endtime = time+(6*30*24*60*60); # 6 months from now, approx |
my $endtime = time+(6*30*24*60*60); # 6 months from now, approx |
my $enroll_table = &Apache::londropadd::date_setting_table($starttime,$endtime,'create_enrolldates'); |
my $enroll_table = &Apache::londropadd::date_setting_table($starttime,$endtime,'create_enrolldates'); |
Line 278 sub print_course_creation_page {
|
Line 281 sub print_course_creation_page {
|
'snid' => "Section Numbers and corresponding LON-CAPA section/group IDs", |
'snid' => "Section Numbers and corresponding LON-CAPA section/group IDs", |
'csli' => "a comma separated list of institutional section numbers, each separated by a colon from the (optional) corresponding section/group ID to be used in LON-CAPA e.g., 001:1,002:2", |
'csli' => "a comma separated list of institutional section numbers, each separated by a colon from the (optional) corresponding section/group ID to be used in LON-CAPA e.g., 001:1,002:2", |
'crcs' => "Crosslisted courses", |
'crcs' => "Crosslisted courses", |
'cscs' => "a comma separated list of course sections crosslisted with the current course, with each entry including the institutional course section name followed by a colon and then the (optional) groupID to be used in LON-CAPA, e.g., fs03ent231001:ent1,fs03bot231001:bot1,fs03zol231002:bot2", |
'cscs' => "a comma separated list of course sections crosslisted with the current course, with each entry including the institutional course section name followed by a colon and then the (optional) groupID to be used in LON-CAPA, e.g., fs03ent231001:ent1,fs03bot231001:bot1,fs03zol231002:zol2", |
'crco' => "Course Content", |
'crco' => "Course Content", |
'cncr' => "Completely new course", |
'cncr' => "Completely new course", |
'cecr' => "Clone an existing course", |
'cecr' => "Clone an existing course", |
Line 356 $helplink
|
Line 359 $helplink
|
<form action="/adm/createcourse" method="post" name="ccrs"> |
<form action="/adm/createcourse" method="post" name="ccrs"> |
<h2>$lt{'cinf'}</h2> |
<h2>$lt{'cinf'}</h2> |
<p> |
<p> |
<b>$lt{'ctit'}:</b> |
<label><b>$lt{'ctit'}:</b> |
<input type="text" size="50" name="title"> |
<input type="text" size="50" name="title" /></label> |
</p><p> |
|
<b>$lt{'chsr'}:</b>$course_home |
|
</p><p> |
</p><p> |
<b>$lt{'cidn'} ($lt{'opt'})</b> |
<label> |
<input type="text" size="30" name="crsid"> |
<b>$lt{'chsr'}:</b>$course_home |
|
</label> |
|
</p><p> |
|
<label> |
|
<b>$lt{'cidn'} ($lt{'opt'})</b> |
|
<input type="text" size="30" name="crsid" /> |
|
</label> |
</p><p> |
</p><p> |
<h2>$lt{'iinf'}</h2> |
<h2>$lt{'iinf'}</h2> |
<p> |
<p> |
$lt{'stat'} |
$lt{'stat'} |
</p><p> |
</p><p> |
<b>$lt{'ccod'}</b> |
<label> |
<input type="text" size="30" name="crscode" /><br/> |
<b>$lt{'ccod'}</b> |
|
<input type="text" size="30" name="crscode" /> |
|
</label> |
|
<br/> |
($lt{'toin'}) |
($lt{'toin'}) |
</p><p> |
</p><p> |
<b>$lt{'snid'}</b> |
<label> |
<input type="text" size="30" name="crssections" /><br/> |
<b>$lt{'snid'}</b> |
|
<input type="text" size="30" name="crssections" /> |
|
</label> |
|
<br/> |
($lt{'csli'}) |
($lt{'csli'}) |
</p><p> |
</p><p> |
<b>$lt{'crcs'}</b> |
<label> |
<input type="text" size="30" name="crsxlist" /><br/> |
<b>$lt{'crcs'}</b> |
|
<input type="text" size="30" name="crsxlist" /> |
|
</label> |
|
<br/> |
($lt{'cscs'}) |
($lt{'cscs'}) |
</p> |
</p> |
<h2>$lt{'crco'}</h2> |
<h2>$lt{'crco'}</h2> |
Line 385 $lt{'stat'}
|
Line 401 $lt{'stat'}
|
<tr><th>$lt{'cncr'}</th><th>$lt{'cecr'}</th></tr> |
<tr><th>$lt{'cncr'}</th><th>$lt{'cecr'}</th></tr> |
<tr><td> |
<tr><td> |
<p> |
<p> |
<b>$lt{'map'}:</b> |
<label> |
<input type="text" size="50" name="topmap"> |
<b>$lt{'map'}:</b> |
|
<input type="text" size="50" name="topmap" /> |
|
</label> |
<a href="javascript:openbrowser('ccrs','topmap')">$lt{'smap'}</a> |
<a href="javascript:openbrowser('ccrs','topmap')">$lt{'smap'}</a> |
</p><p> |
</p><p> |
<b>$lt{'sacr'}</b><br /> |
<label for="nonstd"><b>$lt{'sacr'}</b></label> |
|
<br /> |
($lt{'ocik'}): |
($lt{'ocik'}): |
<input type="checkbox" name="nonstandard"> |
<input id="nonstd" type="checkbox" name="nonstandard" /> |
</p> |
</p><p> |
<p> |
|
<b>$lt{'fres'}</b><br />($lt{'stco'}): |
<b>$lt{'fres'}</b><br />($lt{'stco'}): |
<input type="radio" name="firstres" value="blank">$lt{'blnk'} |
<label> |
|
<input type="radio" name="firstres" value="blank" />$lt{'blnk'} |
|
</label> |
|
|
<input type="radio" name="firstres" value="syl" checked>$lt{'sllb'} |
<label> |
|
<input type="radio" name="firstres" value="syl" checked />$lt{'sllb'} |
|
</label> |
|
|
<input type="radio" name="firstres" value="nav">$lt{'navi'} |
<label> |
|
<input type="radio" name="firstres" value="nav" />$lt{'navi'} |
|
</label> |
</p> |
</p> |
</td><td> |
</td><td> |
$lt{'cid'}: <input input type="text" size="25" name="clonecourse" value="" /> |
<label> |
|
$lt{'cid'}: <input type="text" size="25" name="clonecourse" value="" /> |
|
</label> |
|
<br /> |
|
<label> |
|
$lt{'dmn'}: $cloneform |
|
</label> |
<br /> |
<br /> |
$lt{'dmn'}: |
<br /> |
$cloneform<br /> <br /> |
|
$lt{'asov'}. |
$lt{'asov'}. |
</td></tr> |
</td></tr> |
</table> |
</table> |
<h2>$lt{'assp'}</h2> |
<h2>$lt{'assp'}</h2> |
<p> |
<p> |
<b>$lt{'oaas'}: </b> |
<label> |
<input type="checkbox" name="openall" /> |
<b>$lt{'oaas'}: </b> |
|
<input type="checkbox" name="openall" /> |
|
</label> |
</p> |
</p> |
<h2>$lt{'mssg'}</h2> |
<h2>$lt{'mssg'}</h2> |
<p> |
<p> |
<b>$lt{'scpf'}: </b> |
<label> |
<input type="checkbox" name="setpolicy" checked> |
<b>$lt{'scpf'}: </b> |
|
<input type="checkbox" name="setpolicy" checked /> |
|
</label> |
<br /> |
<br /> |
<b>$lt{'scfc'}: </b> |
<label> |
<input type="checkbox" name="setcontent" checked> |
<b>$lt{'scfc'}: </b> |
|
<input type="checkbox" name="setcontent" checked /> |
|
</label> |
</p> |
</p> |
<h2>$lt{'cmmn'}</h2> |
<h2>$lt{'cmmn'}</h2> |
<p> |
<p> |
<b>$lt{'dsrd'}: </b> |
<label> |
<input type="checkbox" name="disresdis" /> <br /> |
<b>$lt{'dsrd'}: </b> |
<b>$lt{'dsuc'}: </b> |
<input type="checkbox" name="disresdis" /> |
<input type="checkbox" name="disablechat" /> |
</label> |
|
<br /> |
|
<label> |
|
<b>$lt{'dsuc'}: </b> |
|
<input type="checkbox" name="disablechat" /> |
|
</label> |
</p> |
</p> |
<h2>$lt{'acco'}</h2> |
<h2>$lt{'acco'}</h2> |
<p> |
<p> |
<b>$lt{'snak'}: </b> |
<label> |
<input type="checkbox" name="setkeys" /><br /> |
<b>$lt{'snak'}: </b> |
<b>$lt{'kaut'}: </b> |
<input type="checkbox" name="setkeys" /> |
<input type="text" size="30" name="keyauth" /> |
</label> |
|
<br /> |
|
<label> |
|
<b>$lt{'kaut'}: </b> |
|
<input type="text" size="30" name="keyauth" /> |
|
</label> |
</p> |
</p> |
<h2>$lt{'rshm'}</h2> |
<h2>$lt{'rshm'}</h2> |
<p> |
<p> |
<b>$lt{'rshm'}: </b> |
<label> |
<input type="text" name="reshome" size="30" value="/res/$defdom/" /> |
<b>$lt{'rshm'}: </b> |
|
<input type="text" name="reshome" size="30" value="/res/$defdom/" /> |
|
</label> |
</p> |
</p> |
<p> |
<p> |
<h2>$lt{'aens'}</h2> |
<h2>$lt{'aens'}</h2> |
Line 447 $lt{'aesc'}
|
Line 494 $lt{'aesc'}
|
</p> |
</p> |
<p> |
<p> |
<b>$lt{'aadd'}</b> |
<b>$lt{'aadd'}</b> |
<input type="radio" name="autoadds" value="1" />$lt{'yes'} <input type="radio" name="autoadds" value="0" checked="true" />$lt{'no'} |
<label><input type="radio" name="autoadds" value="1" />$lt{'yes'}</label> |
|
<label><input type="radio" name="autoadds" value="0" checked="true" />$lt{'no'} |
|
</label> |
</p><p> |
</p><p> |
<b>$lt{'audr'}</b> |
<b>$lt{'audr'}</b> |
<input type="radio" name="autodrops" value="1" />$lt{'yes'} <input type="radio" name="autodrops" value="0" checked="true" />$lt{'no'} |
<label><input type="radio" name="autodrops" value="1" />$lt{'yes'}</label> |
|
<label><input type="radio" name="autodrops" value="0" checked="true" />$lt{'no'}</label> |
</p><p> |
</p><p> |
<b>$lt{'dacu'}</b> |
<b>$lt{'dacu'}</b> |
$enroll_table |
$enroll_table |
Line 469 $locform
|
Line 519 $locform
|
</p><p> |
</p><p> |
<b>$lt{'nech'}</b><br /> |
<b>$lt{'nech'}</b><br /> |
$lt{'nccl'}<br/> |
$lt{'nccl'}<br/> |
<input type="radio" name="notify" value="1" />$lt{'yes'} <input type="radio" name="notify" |
<label> |
value="0" checked="true" />$lt{'no'} |
<input type="radio" name="notify" value="1" />$lt{'yes'} |
</p><p> |
</label> |
<b>$lt{'irsp'}</b> <input type="radio" name="showphotos" value="1" />$lt{'yes'} <input type="radio" name="showphotos" value="0" checked="true" />$lt{'no'} |
<label> |
|
<input type="radio" name="notify" value="0" checked="true" />$lt{'no'} |
|
</label> |
|
</p><p> |
|
<b>$lt{'irsp'}</b> |
|
<label> |
|
<input type="radio" name="showphotos" value="1" />$lt{'yes'} |
|
</label> |
|
<label> |
|
<input type="radio" name="showphotos" value="0" checked="true" />$lt{'no'} |
|
</label> |
</p> |
</p> |
<hr /> |
<hr /> |
<h2>$lt{'cc'}</h2> |
<h2>$lt{'cc'}</h2> |
<p> |
<p> |
<b>$lt{'user'}:</b> <input type="text" size="15" name="ccuname" /> |
<label> |
</p><p> |
<b>$lt{'user'}:</b> <input type="text" size="15" name="ccuname" /> |
<b>$lt{'dmn'}:</b> $domform |
</label> |
</p><p> |
</p><p> |
<b>$lt{'ierc'}:</b> |
<label> |
<input type="checkbox" name="expireown" checked> |
<b>$lt{'dmn'}:</b> $domform |
|
</label> |
|
</p><p> |
|
<label> |
|
<b>$lt{'ierc'}:</b> |
|
<input type="checkbox" name="expireown" checked /> |
|
</label> |
</p> |
</p> |
<p> |
<p> |
<input type="hidden" name="phase" value="two" /> |
<input type="hidden" name="phase" value="two" /> |
<input type="button" onClick="verify_message(this.form)" value="$lt{'opco'}"> |
<input type="button" onClick="verify_message(this.form)" value="$lt{'opco'}" /> |
</p> |
</p> |
</form> |
</form> |
</body> |
</body> |
Line 547 ENDENHEAD
|
Line 613 ENDENHEAD
|
$cdescr,$curl, |
$cdescr,$curl, |
$ENV{'form.course_home'}, |
$ENV{'form.course_home'}, |
$ENV{'form.nonstandard'}, |
$ENV{'form.nonstandard'}, |
$ENV{'form.crscode'}); |
$ENV{'form.crscode'}, |
|
$ENV{'form.ccuname'}); |
|
|
# Note: The testing routines depend on this being output; see |
# Note: The testing routines depend on this being output; see |
# Utils::Course. This needs to at least be output as a comment |
# Utils::Course. This needs to at least be output as a comment |
Line 581 ENDENHEAD
|
Line 648 ENDENHEAD
|
$cenv{'url'}=$oldcenv{'url'}; |
$cenv{'url'}=$oldcenv{'url'}; |
# Restore title |
# Restore title |
$cenv{'description'}=$oldcenv{'description'}; |
$cenv{'description'}=$oldcenv{'description'}; |
|
# restore grading mode |
|
if (defined($oldcenv{'grading'})) { |
|
$cenv{'grading'}=$oldcenv{'grading'}; |
|
} |
# Mark as cloned |
# Mark as cloned |
$cenv{'clonedfrom'}=$cloneid; |
$cenv{'clonedfrom'}=$cloneid; |
delete($cenv{'default_enrollment_start_date'}); |
delete($cenv{'default_enrollment_start_date'}); |
Line 590 ENDENHEAD
|
Line 661 ENDENHEAD
|
# |
# |
# Set environment (will override cloned, if existing) |
# Set environment (will override cloned, if existing) |
# |
# |
my @affiliates = (); # Used to accumulate sections and crosslistings |
my @sections = (); |
|
my @xlists = (); |
if ($ENV{'form.crsid'}) { |
if ($ENV{'form.crsid'}) { |
$cenv{'courseid'}=$ENV{'form.crsid'}; |
$cenv{'courseid'}=$ENV{'form.crsid'}; |
} |
} |
if ($ENV{'form.crscode'}) { |
if ($ENV{'form.crscode'}) { |
$cenv{'internal.coursecode'}=$ENV{'form.crscode'}; |
$cenv{'internal.coursecode'}=$ENV{'form.crscode'}; |
} |
} |
|
if ($ccuname) { |
|
$cenv{'internal.courseowner'} = $ccuname; |
|
} else { |
|
$cenv{'internal.courseowner'} = $ENV{'user.name'}; |
|
} |
|
|
|
my @badclasses = (); # Used to accumulate sections/crosslistings that did not pass classlist access check for course owner. |
if ($ENV{'form.crssections'}) { |
if ($ENV{'form.crssections'}) { |
$cenv{'internal.sectionnums'}=$ENV{'form.crssections'}; |
$cenv{'internal.sectionnums'} = ''; |
my @sections = (); |
if ($ENV{'form.crssections'} =~ m/,/) { |
if ($cenv{'internal.sectionnums'} =~ m/,/) { |
@sections = split/,/,$ENV{'form.crssections'}; |
@sections = split/,/,$cenv{'internal.sectionnums'}; |
|
} else { |
} else { |
$sections[0] = $cenv{'internal.sectionnums'}; |
$sections[0] = $ENV{'form.crssections'}; |
} |
} |
if (@sections > 0) { |
if (@sections > 0) { |
foreach (@sections) { |
foreach my $item (@sections) { |
my ($sec,$gp) = split/:/,$_; |
my ($sec,$gp) = split/:/,$item; |
push @affiliates,$ENV{'form.crscode'}.$sec; |
my $class = $ENV{'form.crscode'}.$sec; |
|
my $addcheck = &Apache::lonnet::auto_new_course($crsunum,$crsudom,$class,$cenv{'internal.courseowner'}); |
|
if ($addcheck eq 'ok') { |
|
$cenv{'internal.sectionnums'} .= $item.','; |
|
} else { |
|
push @badclasses, $class; |
|
} |
} |
} |
|
$cenv{'internal.sectionnums'} =~ s/,$//; |
} |
} |
} |
} |
# do not hide course coordinator from staff listing, |
# do not hide course coordinator from staff listing, |
# even if privileged |
# even if privileged |
$cenv{'nothideprivileged'}=$ccuname.':'.$ccdomain; |
$cenv{'nothideprivileged'}=$ccuname.':'.$ccdomain; |
if ($ENV{'form.crsxlist'}) { |
if ($ENV{'form.crsxlist'}) { |
$cenv{'internal.crosslistings'}=$ENV{'form.crsxlist'}; |
$cenv{'internal.crosslistings'}=''; |
my @xlists = (); |
if ($ENV{'form.crsxlist'} =~ m/,/) { |
if ($cenv{'internal.crosslistings'} =~ m/,/) { |
@xlists = split/,/,$ENV{'form.crsxlist'}; |
@xlists = split/,/,$cenv{'internal.crosslistings'}; |
|
} else { |
} else { |
$xlists[0] = $cenv{'internal.crosslistings'}; |
$xlists[0] = $ENV{'form.crsxlist'}; |
} |
} |
if (@xlists > 0) { |
if (@xlists > 0) { |
foreach (@xlists) { |
foreach my $item (@xlists) { |
my ($xl,$gp) = split/:/,$_; |
my ($xl,$gp) = split/:/,$item; |
push @affiliates,$xl; |
my $addcheck = &Apache::lonnet::auto_new_course($crsunum,$crsudom,$xl,$cenv{'internal.courseowner'}); |
|
if ($addcheck eq 'ok') { |
|
$cenv{'internal.crosslistings'} .= $item.','; |
|
} else { |
|
push @badclasses, $xl; |
|
} |
} |
} |
|
$cenv{'internal.crosslistings'} =~ s/,$//; |
} |
} |
} |
} |
if ($ENV{'form.autoadds'}) { |
if ($ENV{'form.autoadds'}) { |
Line 638 ENDENHEAD
|
Line 728 ENDENHEAD
|
} |
} |
if ($ENV{'form.notify'}) { |
if ($ENV{'form.notify'}) { |
if ($ccuname) { |
if ($ccuname) { |
$cenv{'internal.notifylist'} = $ccuname; |
$cenv{'internal.notifylist'} = $ccuname.'@'.$ccdomain; |
} |
} |
} |
} |
if ($ccuname) { |
if (@badclasses > 0) { |
$cenv{'internal.courseowner'} = $ccuname; |
my %lt=&Apache::lonlocal::texthash( |
} else { |
'tclb' => 'The courses listed below have not been 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'} = $ENV{'user.name'}; |
'dnhr' => 'does not have rights to access enrollment in these classes', |
} |
'adby' => 'as determined by the policies of your institution on access to official classlists' |
if (@affiliates > 0) { |
); |
my @badclasses = (); |
$r->print('<font color="red">'.$lt{'tclb'}.' ('.$cenv{'internal.courseowner'}.') - '.$lt{'dnhr'}.' ('.$lt{'adby'}.').<br /><ul>'."\n"); |
foreach my $class (@affiliates) { |
foreach (@badclasses) { |
my $addcheck = &Apache::lonnet::auto_new_course($crsunum,$crsudom,$class,$cenv{'internal.courseowner'}); |
$r->print("<li>$_</li>\n"); |
unless ($addcheck eq 'ok') { |
|
push @badclasses, $class; |
|
} |
|
} |
|
if (@badclasses > 0) { |
|
$r->print('<font color="red">'. |
|
"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).<br/><ul>\n"); |
|
foreach (@badclasses) { |
|
$r->print("<li>$_</li>\n"); |
|
} |
|
$r->print ("</ul><br/><br/></font>\n"); |
|
} |
} |
|
$r->print ("</ul><br /><br /></font>\n"); |
} |
} |
my $enrollstart = &Apache::lonhtmlcommon::get_date_from_form('startenroll'); |
my $enrollstart = &Apache::lonhtmlcommon::get_date_from_form('startenroll'); |
my $enrollend = &Apache::lonhtmlcommon::get_date_from_form('endenroll'); |
my $enrollend = &Apache::lonhtmlcommon::get_date_from_form('endenroll'); |
Line 747 ENDENHEAD
|
Line 827 ENDENHEAD
|
$cenv{'internal.encpref'}=100+int(9*rand(99)); |
$cenv{'internal.encpref'}=100+int(9*rand(99)); |
# |
# |
# By default, use standard grading |
# By default, use standard grading |
$cenv{'grading'} = 'standard'; |
if (!defined($cenv{'grading'})) { $cenv{'grading'} = 'standard'; } |
|
|
$r->print('<br />'.&mt('Setting environment').': '. |
$r->print('<br />'.&mt('Setting environment').': '. |
&Apache::lonnet::put('environment',\%cenv,$crsudom,$crsunum).'<br>'); |
&Apache::lonnet::put('environment',\%cenv,$crsudom,$crsunum).'<br>'); |