--- loncom/interface/loncoursequeueadmin.pm 2023/09/04 17:10:13 1.52.2.5.2.3
+++ loncom/interface/loncoursequeueadmin.pm 2020/08/21 21:59:20 1.60
@@ -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.5.2.3 2023/09/04 17:10:13 raeburn Exp $
+# $Id: loncoursequeueadmin.pm,v 1.60 2020/08/21 21:59:20 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -506,7 +506,7 @@ sub build_queue_display {
my %crstypes;
my $output = &Apache::loncommon::start_data_table().
&Apache::loncommon::start_data_table_header_row();
- unless (($context eq 'pending') || ($context eq 'displaypending') || ($context eq 'helpdesk')) {
+ unless (($context eq 'pending') || ($context eq 'displaypending') || ($context eq 'helpdesk')) {
$output .= '
'.&mt('Action').' | ';
}
$output .= ''.&mt('Requestor').' | ';
@@ -528,6 +528,7 @@ sub build_queue_display {
unofficial => 'Unofficial course',
community => 'Community',
textbook => 'Textbook course',
+ placement => 'Placement test',
);
$output .= ''.&mt('Type').' | '.
''.&mt('Date requested').' | '.
@@ -609,7 +610,7 @@ sub build_queue_display {
} elsif ($context eq 'requestusername') {
$row .= ''.$showtime.' | '."\n".
''.$detailslink.' | '."\n";
- } else {
+ } else {
if ($context eq 'pending' || $context eq 'displaypending' || $context eq 'stillpending') {
$row .= ''.$instcode.' | '."\n";
} else {
@@ -1619,12 +1620,12 @@ sub course_creation {
(ref($longroles) eq 'HASH')) {
return ('error: Invalid request');
}
- my ($result,$ownername,$ownerdom,$autocoowner);
+ my ($result,$ownername,$ownerdom);
my $crstype = $details->{'crstype'};
my $coursedesc = $details->{'cdescr'};
my $accessstart = $details->{'accessstart'};
my $accessend = $details->{'accessend'};
- my %domconfig = &Apache::lonnet::get_dom('configuration',['requestcourses','autoenroll'],$dom);
+ my %domconfig = &Apache::lonnet::get_dom('configuration',['requestcourses'],$dom);
if (ref($domconfig{'requestcourses'}) eq 'HASH') {
if (ref($domconfig{'requestcourses'}{'uniquecode'}) eq 'HASH') {
if ($domconfig{'requestcourses'}{'uniquecode'}{$crstype}) {
@@ -1632,9 +1633,6 @@ sub course_creation {
}
}
}
- if (ref($domconfig{'autoenroll'}) eq 'HASH') {
- $autocoowner = $domconfig{'autoenroll'}{'co-owners'};
- }
if ($context eq 'domain') {
$ownername = $details->{'owner'};
$ownerdom = $details->{'domain'};
@@ -1649,7 +1647,7 @@ sub course_creation {
$owneremail = $emails{$email};
last if ($owneremail ne '');
}
- my %reqdetails = &build_batchcreatehash($dom,$cnum,$context,$details,$owneremail,$domdefs);
+ my %reqdetails = &build_batchcreatehash($dom,$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,
@@ -1664,66 +1662,6 @@ sub course_creation {
$postprocess = &Apache::lonnet::auto_crsreq_update($dom,$cnum,$crstype,$result,$ownername,
$ownerdom,$fullname,$coursedesc,$code,
$accessstart,$accessend,$customhash);
- if ($autocoowner) {
- my $instcode = $details->{'instcode'};
- if (($instcode ne '') && (ref($reqdetails{'users'}) eq 'HASH')) {
- my @posscoowners;
- my $now = time;
- foreach my $person (keys(%{$reqdetails{'users'}})) {
- my ($uname,$udom) = split(/:/,$person);
- next if (($udom ne $dom) || (($uname eq $ownername) && ($udom eq $ownerdom)));
- if ((&Apache::lonnet::homeserver($uname,$udom,1) ne 'no_host') &&
- (ref($reqdetails{'users'}{$person}) eq 'HASH')) {
- if ((grep(/^cc$/,keys(%{$reqdetails{'users'}{$person}}))) &&
- (ref($reqdetails{'users'}{$person}{'cc'}) eq 'HASH')) {
- my $start = $reqdetails{'users'}{$person}{'cc'}{'start'};
- my $end = $reqdetails{'users'}{$person}{'cc'}{'end'};
- if ((($start eq '') || ($start <= $now)) &&
- (($end eq '') || ($end >= $now))) {
- push(@posscoowners,$person);
- }
- }
- }
- }
- my @coowners;
- if (@posscoowners) {
- foreach my $user (@posscoowners) {
- my ($checkcc,$desc) =
- &Apache::lonnet::auto_validate_instcode($cnum,$dom,$instcode,$user);
- unless ($checkcc eq 'valid') {
- if (ref($reqdetails{'crosslists'}) eq 'HASH') {
- foreach my $key (keys(%{$reqdetails{'crosslists'}})) {
- if (ref($reqdetails{'crosslists'}{$key}) eq 'HASH') {
- my $inst_crosslist = $reqdetails{'crosslists'}{$key}{'inst'};
- if ($inst_crosslist ne '') {
- $checkcc =
- &Apache::lonnet::auto_validate_inst_crosslist($cnum,$dom,$instcode,
- $inst_crosslist,$user);
- last if ($checkcc eq 'valid');
- }
- }
- }
- }
- }
- if ($checkcc eq 'valid') {
- if (@coowners > 0) {
- unless (grep(/^\Q$user\E$/,@coowners)) {
- push(@coowners,$user);
- }
- } else {
- push(@coowners,$user);
- }
- }
- }
- }
- if (@coowners > 0) {
- my $chome = &Apache::lonnet::homeserver($cnum,$dom);
- unless ($chome eq 'no_host') {
- &Apache::lonnet::store_coowners($dom,$cnum,$chome,'',@coowners);
- }
- }
- }
- }
} else {
$result = 'error: '.$cid;
}
@@ -1731,7 +1669,7 @@ sub course_creation {
}
sub build_batchcreatehash {
- my ($dom,$cnum,$context,$details,$owneremail,$domdefs) = @_;
+ my ($dom,$context,$details,$owneremail,$domdefs) = @_;
my %batchhash;
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')) {
@@ -1743,14 +1681,7 @@ sub build_batchcreatehash {
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}{'inst'} = $details->{crosslists}->{$key}->{instcode}.$details->{crosslists}->{$key}->{instsec};
$batchhash{'crosslists'}{$key}{'loncapa'} = $details->{crosslists}->{$key}->{loncapa};
}
}
@@ -1767,14 +1698,14 @@ sub build_batchcreatehash {
$batchhash{'authparam'} = $domdefs->{'auth_arg_def'};
if ($details->{'crstype'} eq 'community') {
$batchhash{'crstype'} = 'Community';
+ } elsif ($details->{'crstype'} eq 'placement') {
+ $batchhash{'crstype'} = 'Placement';
} else {
if ($details->{'crstype'} eq 'textbook') {
if ($details->{'clonecrs'} && $details->{'clonedom'}) {
my %clonedfrom = &Apache::lonnet::coursedescription($details->{'clonedom'}.'_'.$details->{'clonecrs'});
$batchhash{'textbook'} = $clonedfrom{'description'};
}
- } elsif ($details->{'crstype'} eq 'lti') {
- $batchhash{'lti'} = 1;
}
$batchhash{'crstype'} = 'Course';
}
@@ -2318,7 +2249,7 @@ sub postprocess_crsenv {
my %needcrsidput = (
'internal.selfenroll_types' => 1,
'internal.selfenroll_start_date' => 1,
- 'internal.selfenroll_end_date' => 1,
+ 'internal. selfenroll_end_date' => 1,
);
my (@needupdate,%newcrsenv);
foreach my $key (keys(%{$postprocessenv})) {