--- loncom/automation/batchcreatecourse.pm 2013/12/25 09:52:47 1.39 +++ loncom/automation/batchcreatecourse.pm 2020/05/22 15:05:36 1.44 @@ -1,5 +1,5 @@ # -# $Id: batchcreatecourse.pm,v 1.39 2013/12/25 09:52:47 raeburn Exp $ +# $Id: batchcreatecourse.pm,v 1.44 2020/05/22 15:05:36 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -83,11 +83,13 @@ use strict; # # 1 # 1 +# 1 # 0 # keyadmin:msu # 1 # 1 # +# # 1 # 1 # @@ -152,7 +154,7 @@ use strict; # # Many of these are binary options (corresponding to either checkboxes or # radio buttons in the interactive CCRS page). Examples include: -# setpolicy, setcontent, setkeys, disableresdis, disablechat, openall, +# setpolicy, setcontent, setcomment, setkeys, disableresdis, disablechat, openall, # uniquecode # # A value of 1 between opening and closing tags is equivalent to a @@ -163,7 +165,7 @@ use strict; # firstres can be nav, syl, or blank for "Navigate Contents", Syllabus, or # no entry respectively. # -# crstype can be Course or Community +# crstype can be Course, Community or Placement # # crsquota is the total disk space permitted for course group portfolio files # in all course groups. @@ -210,7 +212,7 @@ sub create_courses { $longroles{'Community'}{$1} = $3; } } - my ($logmsg,$keysmsg,$newusermsg,$addresult,%codehash); + my ($logmsg,$keysmsg,$newusermsg,$addresult,%codehash,%instcodes); my %enrollcount = (); my $newcoursedir = LONCAPA::tempdir().'/addcourse/'.$dom.'/'.$context; if ($context eq 'auto') { @@ -238,12 +240,15 @@ sub create_courses { if ($code) { $codehash{$courseid} = $code; } + if ($details{$num}{'coursecode'} ne '') { + push(@{$instcodes{$details{$num}{'coursecode'}}},$courseid); + } } } } } } - return ($output,$logmsg,$keysmsg,\%codehash); + return ($output,$logmsg,$keysmsg,\%codehash,\%instcodes); } ############################################################# @@ -266,9 +271,9 @@ sub parse_coursereqs { my $xlist = 0; my $userkey = ''; my $role = ''; - my @items = ('title','optional_id','coursecode','defaultcredits','coursehome','reshome','nonstandard','adds','drops','topmap','firstres','clonecrs','clonedom','datemode','dateshift','showphotos','setpolicy','setcontent','setkeys','keyauth','disresdis','disablechat','openall','notify_owner','notify_dc','crstype','crsquota','uniquecode'); + my @items = ('title','optional_id','coursecode','defaultcredits','coursehome','reshome','nonstandard','adds','drops','topmap','firstres','clonecrs','clonedom','datemode','dateshift','showphotos','setpolicy','setcontent','setcomment','setkeys','keyauth','disresdis','disablechat','openall','notify_owner','notify_dc','crstype','crsquota','uniquecode'); my @possroles = qw(st ad ep ta in cc co); - my @dateitems = ('enrollstart','enrollend','accessstart','accessend'); + my @dateitems = ('enrollstart','enrollend','accessstart','accessend','openallfrom'); my @useritems = ('autharg','authtype','firstname','generation','lastname','middlename','studentID'); my $p = HTML::Parser->new ( @@ -428,7 +433,11 @@ sub build_course { $rolenames = $longroles->{'Community'}; } } else { - $crstype = 'Course'; + if ($details->{'crstype'} eq 'Placement') { + $crstype = $details->{'crstype'}; + } else { + $crstype = 'Course'; + } $ccrole = 'cc'; if (ref($longroles) eq 'HASH') { $rolenames = $longroles->{'Course'}; @@ -451,6 +460,8 @@ sub build_course { if ($firstres eq '') { if ($crstype eq 'Community') { $firstres = 'nav'; + } elsif ($crstype eq 'Placement') { + $firstres = 'blank'; } else { $firstres = 'syl'; } @@ -534,14 +545,19 @@ sub build_course { endaccess => $details->{'accessend'}, setpolicy => $details->{'setpolicy'}, setcontent => $details->{'setcontent'}, + setcomment => $details->{'setcomment'}, reshome => $reshome, setkeys => $details->{'setkeys'}, keyauth => $details->{'keyauth'}, disresdis => $details->{'disresdis'}, disablechat => $details->{'disablechat'}, openall => $details->{'openall'}, + openallfrom => $details->{'openallfrom'}, firstres => $firstres }; + if ($details->{'textbook'}) { + $courseargs->{'textbook'} = $details->{'textbook'}; + } my %host_servers = &Apache::lonnet::get_servers($cdom,'library'); if (! exists($host_servers{$details->{'coursehome'}})) { $$logmsg .= &mt('Invalid home server for course').': '.$details->{'coursehome'}; @@ -557,7 +573,7 @@ sub build_course { } else { return; } - + # # Make owner a coordinator #