version 1.17, 2010/01/29 13:18:38
|
version 1.19, 2010/02/21 23:38:51
|
Line 1
|
Line 1
|
# The LearningOnline Network |
# The LearningOnline Network |
# Utilities to administer domain course requests and course self-enroll requests |
# Utilities to administer domain course requests and course self-enroll requests |
# |
# |
# $Id$ |
# $Id$ |
# |
# |
Line 74 use Apache::loncommon;
|
Line 74 use Apache::loncommon;
|
use Apache::lonmsg; |
use Apache::lonmsg; |
use Apache::lonlocal; |
use Apache::lonlocal; |
use Apache::lonuserutils; |
use Apache::lonuserutils; |
use LONCAPA; |
use LONCAPA qw(:DEFAULT :match); |
|
|
sub send_selfserve_notification { |
sub send_selfserve_notification { |
my ($notifylist,$textstr,$cid,$contextdesc,$timestamp,$context,$sender, |
my ($notifylist,$textstr,$cid,$contextdesc,$timestamp,$context,$sender, |
Line 375 sub update_request_queue {
|
Line 375 sub update_request_queue {
|
$stucounts,$idx,$classlist,%requesthash,$cid,$hostname,$protocol, |
$stucounts,$idx,$classlist,%requesthash,$cid,$hostname,$protocol, |
$domdesc,$now,$sender,$approvedmsg,$rejectedmsg,$beneficiary, |
$domdesc,$now,$sender,$approvedmsg,$rejectedmsg,$beneficiary, |
@existing,@missingreq,@invalidusers,@limitexceeded,@completed, |
@existing,@missingreq,@invalidusers,@limitexceeded,@completed, |
@processing_errors,@warn_approves,@warn_rejects,@approvals, |
@processing_errors,@warn_approves,@warn_rejects,@approvals,@warn_dels, |
@rejections,@rejectionerrors,@nopermissions,%courseroles, |
@rejections,@rejectionerrors,@nopermissions,%courseroles, |
%communityroles,%domdefs,%approvalmsg,%rejectionmsg,$crstype); |
%communityroles,%domdefs,%approvalmsg,%rejectionmsg,$crstype); |
@approvals = &Apache::loncommon::get_env_multiple('form.approvereq'); |
@approvals = &Apache::loncommon::get_env_multiple('form.approvereq'); |
Line 466 sub update_request_queue {
|
Line 466 sub update_request_queue {
|
my $uhome = &Apache::lonnet::homeserver($uname,$udom); |
my $uhome = &Apache::lonnet::homeserver($uname,$udom); |
if ($uhome ne 'no_host') { |
if ($uhome ne 'no_host') { |
if (exists($requesthash{$uname.':'.$udom})) { |
if (exists($requesthash{$uname.':'.$udom})) { |
|
|
if (exists($classlist->{$uname.':'.$udom})) { |
if (exists($classlist->{$uname.':'.$udom})) { |
if (ref($classlist->{$uname.':'.$udom}) eq 'ARRAY') { |
if (ref($classlist->{$uname.':'.$udom}) eq 'ARRAY') { |
if (($classlist->{$uname.':'.$udom}->[$idx->{'status'}] eq 'Active') || |
if (($classlist->{$uname.':'.$udom}->[$idx->{'status'}] eq 'Active') || |
Line 565 sub update_request_queue {
|
Line 564 sub update_request_queue {
|
$approvedmsg = $approvalmsg{'course'}; |
$approvedmsg = $approvalmsg{'course'}; |
} |
} |
push(@completed,$cnum); |
push(@completed,$cnum); |
|
|
|
unless (&Apache::lonnet::del_dom($namespace,[$cnum.'_approval'],$cdom) eq 'ok') { |
|
push(@warn_dels,$cnum); |
|
} |
&send_selfserve_notification($ownername.':'.$ownerdom,$approvedmsg, |
&send_selfserve_notification($ownername.':'.$ownerdom,$approvedmsg, |
$cid,$coursedesc,$now,$beneficiary,$sender,undef,undef,$crstype); |
$cid,$coursedesc,$now,$beneficiary,$sender,undef,undef,$crstype); |
my %reqhash = ( |
my %reqhash = ( |
Line 679 sub update_request_queue {
|
Line 682 sub update_request_queue {
|
} else { |
} else { |
push(@warn_rejects,$cnum); |
push(@warn_rejects,$cnum); |
} |
} |
|
unless (&Apache::lonnet::del_dom($namespace,[$cnum.'_approval'],$cdom) eq 'ok') { |
|
push(@warn_dels,$cnum); |
|
} |
} else { |
} else { |
push(@warn_rejects,$cnum); |
push(@warn_rejects,$cnum); |
} |
} |
Line 896 sub update_request_queue {
|
Line 902 sub update_request_queue {
|
$output .= '</ul></p>'; |
$output .= '</ul></p>'; |
} |
} |
} |
} |
|
if (@warn_dels) { |
|
$output .= '<p>'.&mt("For the following course/community requests an error occurred when removing requests for the following from the pending queue:").'<ul>'; |
|
foreach my $cnum (@warn_dels) { |
|
my $showcourse; |
|
if (ref($requesthash{$cnum.'_approval'})) { |
|
$showcourse = $requesthash{$cnum.'_approval'}{'description'}; |
|
} else { |
|
$showcourse = $cnum; |
|
} |
|
$output .= '<li>'.$showcourse.'</li>'; |
|
} |
|
$output .= '</ul></p>'; |
|
} |
return $output; |
return $output; |
} |
} |
|
|
Line 1039 sub can_clone_course {
|
Line 1058 sub can_clone_course {
|
$canclone = 1; |
$canclone = 1; |
} |
} |
} |
} |
|
unless ($canclone) { |
|
if (&Apache::lonnet::is_course_owner($clonedom,$clonecrs,$uname,$udom)) { |
|
$can_clone = 1; |
|
} |
|
} |
} |
} |
return $canclone; |
return $canclone; |
} |
} |
Line 1180 sub queued_selfenrollment {
|
Line 1204 sub queued_selfenrollment {
|
return $output; |
return $output; |
} |
} |
|
|
|
sub update_coursereq_status { |
|
my ($reqhash,$dom,$cnum,$reqstatus,$context) = @_; |
|
my ($storeresult,$statusresult,$output); |
|
my $requestkey = $dom.'_'.$cnum; |
|
if ($requestkey =~ /^($match_domain)_($match_courseid)$/) { |
|
$storeresult = &Apache::lonnet::store_userdata($reqhash,$requestkey, |
|
'courserequests'); |
|
if ($storeresult eq 'ok') { |
|
my %status = ( |
|
'status:'.$dom.':'.$cnum => $reqstatus, |
|
); |
|
$statusresult = &Apache::lonnet::put('courserequests',\%status); |
|
} |
|
} else { |
|
$storeresult = 'error: invalid requestkey format'; |
|
} |
|
if ($storeresult ne 'ok') { |
|
$output = &mt('An error occurred saving a record of the details of your request: [_1].',$storeresult); |
|
if ($context eq 'domain') { |
|
$output .= "\n"; |
|
} else { |
|
$output = '<span class="LC_warning">'.$output.'</span><br />'; |
|
} |
|
&Apache::lonnet::logthis("Error saving course request - $requestkey for $env{'user.name'}:$env{'user.domain'} - $storeresult"); |
|
} elsif ($statusresult ne 'ok') { |
|
$output = &mt('An error occurred saving a record of the status of your request: [_1].',$statusresult); |
|
if ($context eq 'domain') { |
|
$output .= "\n"; |
|
} else { |
|
$output = '<span class="LC_warning">'.$output.'</span><br />'; |
|
} |
|
&Apache::lonnet::logthis("Error saving course request status for $requestkey (for $env{'user.name'}:$env{'user.domain'}) - $statusresult"); |
|
} |
|
return ($storeresult,$output); |
|
} |
|
|
1; |
1; |