--- loncom/interface/loncoursequeueadmin.pm 2020/07/20 10:13:17 1.52.2.3.2.2 +++ loncom/interface/loncoursequeueadmin.pm 2021/12/31 00:38:28 1.52.2.5.2.1 @@ -1,7 +1,7 @@ # The LearningOnline Network # Utilities to administer domain course requests and course self-enroll requests # -# $Id: loncoursequeueadmin.pm,v 1.52.2.3.2.2 2020/07/20 10:13:17 raeburn Exp $ +# $Id: loncoursequeueadmin.pm,v 1.52.2.5.2.1 2021/12/31 00:38:28 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1646,7 +1646,7 @@ sub course_creation { $owneremail = $emails{$email}; last if ($owneremail ne ''); } - my %reqdetails = &build_batchcreatehash($dom,$context,$details,$owneremail,$domdefs); + my %reqdetails = &build_batchcreatehash($dom,$cnum,$context,$details,$owneremail,$domdefs); my $cid = &LONCAPA::batchcreatecourse::build_course($dom,$cnum,'requestcourses', \%reqdetails,$longroles,$logmsg,$clonemsg,$newusermsg,$addresult, $enrollcount,$output,$keysmsg,$ownerdom,$ownername,$cnum,$crstype, @@ -1668,15 +1668,30 @@ sub course_creation { } sub build_batchcreatehash { - my ($dom,$context,$details,$owneremail,$domdefs) = @_; + my ($dom,$cnum,$context,$details,$owneremail,$domdefs) = @_; my %batchhash; - my @items = qw{owner domain coursehome clonecrs clonedom datemode dateshift tinyurls enrollstart enrollend accessstart accessend sections crosslists users uniquecode}; + my @items = qw{owner domain coursehome clonecrs clonedom datemode dateshift tinyurls enrollstart enrollend accessstart accessend sections users uniquecode}; if ((ref($details) eq 'HASH') && (ref($domdefs) eq 'HASH')) { my $emailenc = &escape($owneremail); my $owner = $details->{'owner'}.':'.$details->{'domain'}; foreach my $item (@items) { $batchhash{$item} = $details->{$item}; } + if (ref($details->{'crosslists'}) eq 'HASH') { + foreach my $key (keys(%{$details->{'crosslists'}})) { + if (ref($details->{'crosslists'}->{$key}) eq 'HASH') { + my $instsec = $details->{crosslists}->{$key}->{instsec}; + $batchhash{'crosslists'}{$key}{'inst'} = $details->{crosslists}->{$key}->{instcode}; + my $crskey = $cnum.':'.$batchhash{'crosslists'}{$key}{'inst'}; + my %formatted = &Apache::lonnet::auto_instsec_reformat($dom,'clutter', + {$crskey => [$instsec]}); + if (ref($formatted{$crskey}) eq 'ARRAY') { + $batchhash{'crosslists'}{$key}{'inst'} .= $formatted{$crskey}->[0]; + } + $batchhash{'crosslists'}{$key}{'loncapa'} = $details->{crosslists}->{$key}->{loncapa}; + } + } + } $batchhash{'title'} = $details->{'cdescr'}; $batchhash{'coursecode'} = $details->{'instcode'}; if ($domdefs->{'officialcredits'} || $domdefs->{'unofficialcredits'}) { @@ -2104,7 +2119,7 @@ sub process_official_reqs { my ($result,$postprocess) = &course_creation($dom,$cnum,'domain',$history{'details'},\$logmsg,$clonemsg,\$newusermsg, \$addresult,\$enrollcount,\$response,\$keysmsg,\%domdefs,\%longroles, - \$code,\%customitems,$context,$user_lh); + \$code,\%customitems,$context,$user_lh); if ($result eq 'created') { $disposition = 'created'; $reqstatus = 'created';