version 1.58, 2017/08/03 16:28:39
|
version 1.59, 2020/07/01 20:08:54
|
Line 304 sub send_selfserve_notification {
|
Line 304 sub send_selfserve_notification {
|
my $stamp = time; |
my $stamp = time; |
my $msgcount = &Apache::lonmsg::get_uniq(); |
my $msgcount = &Apache::lonmsg::get_uniq(); |
my $sender_lh = &Apache::loncommon::user_lang($uname,$udom,$cid); |
my $sender_lh = &Apache::loncommon::user_lang($uname,$udom,$cid); |
$subject = &Apache::lonlocal::mt_user($sender_lh,$rawsubj); |
$subject = &mt_user($sender_lh,$rawsubj); |
$message = ''; |
$message = ''; |
foreach my $item (@rawmsg) { |
foreach my $item (@rawmsg) { |
if (ref($item) eq 'HASH') { |
if (ref($item) eq 'HASH') { |
$message .= &Apache::lonlocal::mt_user($sender_lh,$item->{mt},@{$item->{args}})."\n"; |
$message .= &mt_user($sender_lh,$item->{mt},@{$item->{args}})."\n"; |
} |
} |
} |
} |
&Apache::lonmsg::process_sent_mail($subject,'',$numsent,$stamp,$uname,$udom,$msgcount,$cid,$$,$message, |
&Apache::lonmsg::process_sent_mail($subject,'',$numsent,$stamp,$uname,$udom,$msgcount,$cid,$$,$message, |
Line 322 sub send_selfserve_notification {
|
Line 322 sub send_selfserve_notification {
|
foreach my $recip (sort(keys(%{$msgcc}))) { |
foreach my $recip (sort(keys(%{$msgcc}))) { |
my ($ccname,$ccdom) = split(/:/,$recip); |
my ($ccname,$ccdom) = split(/:/,$recip); |
my $recip_lh = &Apache::loncommon::user_lang($ccname,$ccdom,$cid); |
my $recip_lh = &Apache::loncommon::user_lang($ccname,$ccdom,$cid); |
my $subject = &Apache::lonlocal::mt_user($sender_lh,$rawsubj); |
my $subject = &mt_user($sender_lh,$rawsubj); |
my $message = ''; |
my $message = ''; |
foreach my $item (@rawmsg) { |
foreach my $item (@rawmsg) { |
if (ref($item) eq 'HASH') { |
if (ref($item) eq 'HASH') { |
$message .= &Apache::lonlocal::mt_user($sender_lh,$item->{mt}, |
$message .= &mt_user($sender_lh,$item->{mt}, |
@{$item->{args}})."\n"; |
@{$item->{args}})."\n"; |
} |
} |
} |
} |
if ($context eq 'coursemanagers') { |
if ($context eq 'coursemanagers') { |
if ($approvedlist) { |
if ($approvedlist) { |
$message .= "\n\n".&Apache::lonlocal::mt_user($sender_lh,'Approved enrollments:')."\n".$approvedlist; |
$message .= "\n\n".&mt_user($sender_lh,'Approved enrollments:')."\n".$approvedlist; |
} |
} |
if ($rejectedlist) { |
if ($rejectedlist) { |
$message .= "\n\n".&Apache::lonlocal::mt_user($sender_lh,'Rejected enrollments:')."\n".$rejectedlist; |
$message .= "\n\n".&mt_user($sender_lh,'Rejected enrollments:')."\n".$rejectedlist; |
} |
} |
} elsif ($context eq 'domainmanagers') { |
} elsif ($context eq 'domainmanagers') { |
if ($approvedlist) { |
if ($approvedlist) { |
$message .= "\n\n".&Apache::lonlocal::mt_user($sender_lh,'Approved course requests:')."\n".$approvedlist; |
$message .= "\n\n".&mt_user($sender_lh,'Approved course requests:')."\n".$approvedlist; |
} |
} |
if ($rejectedlist) { |
if ($rejectedlist) { |
$message .= "\n\n".&Apache::lonlocal::mt_user($sender_lh,'Rejected course requests:')."\n".$rejectedlist; |
$message .= "\n\n".&mt_user($sender_lh,'Rejected course requests:')."\n".$rejectedlist; |
} |
} |
} elsif ($context eq 'authormanagers') { |
} elsif ($context eq 'authormanagers') { |
if ($approvedlist) { |
if ($approvedlist) { |
$message .= "\n\n".&Apache::lonlocal::mt_user($sender_lh,'Approved author role requests:')."\n".$approvedlist; |
$message .= "\n\n".&mt_user($sender_lh,'Approved author role requests:')."\n".$approvedlist; |
} |
} |
if ($rejectedlist) { |
if ($rejectedlist) { |
$message .= "\n\n".&Apache::lonlocal::mt_user($sender_lh,'Rejected author role requests:')."\n".$rejectedlist; |
$message .= "\n\n".&mt_user($sender_lh,'Rejected author role requests:')."\n".$rejectedlist; |
} |
} |
} elsif ($context eq 'usernamemanagers') { |
} elsif ($context eq 'usernamemanagers') { |
if ($approvedlist) { |
if ($approvedlist) { |
$message .= "\n\n".&Apache::lonlocal::mt_user($sender_lh,'Approved LON-CAPA account requests:')."\n".$approvedlist; |
$message .= "\n\n".&mt_user($sender_lh,'Approved LON-CAPA account requests:')."\n".$approvedlist; |
} |
} |
if ($rejectedlist) { |
if ($rejectedlist) { |
$message .= "\n\n".&Apache::lonlocal::mt_user($sender_lh,'Rejected LON-CAPA account requests:')."\n".$rejectedlist; |
$message .= "\n\n".&mt_user($sender_lh,'Rejected LON-CAPA account requests:')."\n".$rejectedlist; |
} |
} |
} |
} |
$status .= &Apache::lonmsg::user_normal_msg($ccname,$ccdom,$subject,$message,undef,undef,undef,1, |
$status .= &Apache::lonmsg::user_normal_msg($ccname,$ccdom,$subject,$message,undef,undef,undef,1, |
Line 982 sub update_request_queue {
|
Line 982 sub update_request_queue {
|
$ownerdom,$ownername); |
$ownerdom,$ownername); |
if ((ref($history{'details'}) eq 'HASH') && |
if ((ref($history{'details'}) eq 'HASH') && |
($history{'disposition'} eq $queue)) { |
($history{'disposition'} eq $queue)) { |
my ($logmsg,$newusermsg,$addresult,$enrollcount,$response,$keysmsg,$code,%customitems); |
my ($logmsg,$newusermsg,$addresult,$enrollcount,$response, |
|
$keysmsg,$code,%customitems); |
|
my $clonemsg = []; |
my $fullname = ''; |
my $fullname = ''; |
my $inprocess = &Apache::lonnet::auto_crsreq_update($cdom,$cnum,$crstype,'process',$ownername, |
my $inprocess = &Apache::lonnet::auto_crsreq_update($cdom,$cnum,$crstype,'process',$ownername, |
$ownerdom,$fullname,$coursedesc); |
$ownerdom,$fullname,$coursedesc); |
Line 996 sub update_request_queue {
|
Line 998 sub update_request_queue {
|
if ($history{'details'}{'clonecrs'}) { |
if ($history{'details'}{'clonecrs'}) { |
$customitems{'_LC_clonefrom'} = $history{'details'}{'clonedom'}.'_'.$history{'details'}{'clonecrs'}; |
$customitems{'_LC_clonefrom'} = $history{'details'}{'clonedom'}.'_'.$history{'details'}{'clonecrs'}; |
} |
} |
my ($result,$postprocess) = &course_creation($cdom,$cnum,$context,$history{'details'},\$logmsg, |
my ($result,$postprocess) = &course_creation($cdom,$cnum,$context,$history{'details'}, |
\$newusermsg,\$addresult,\$enrollcount, |
\$logmsg,$clonemsg,\$newusermsg,\$addresult,\$enrollcount, |
\$response,\$keysmsg,\%domdefs,$longroles,\$code,\%customitems); |
\$response,\$keysmsg,\%domdefs,$longroles,\$code,\%customitems); |
if ($result eq 'created') { |
if ($result eq 'created') { |
if ($crstype eq 'community') { |
if ($crstype eq 'community') { |
Line 1010 sub update_request_queue {
|
Line 1012 sub update_request_queue {
|
if (ref($approvedmsg->[1]) eq 'HASH') { |
if (ref($approvedmsg->[1]) eq 'HASH') { |
$approvedmsg->[1]->{'args'} = [$firsturl]; |
$approvedmsg->[1]->{'args'} = [$firsturl]; |
} |
} |
|
if ((ref($clonemsg) eq 'ARRAY') && (@{$clonemsg})) { |
|
push(@{$approvedmsg},@{$clonemsg}); |
|
} |
if ($code) { |
if ($code) { |
push(@{$approvedmsg}, |
push(@{$approvedmsg}, |
{ |
{ |
Line 1608 sub get_student_counts {
|
Line 1613 sub get_student_counts {
|
} |
} |
|
|
sub course_creation { |
sub course_creation { |
my ($dom,$cnum,$context,$details,$logmsg,$newusermsg,$addresult,$enrollcount,$output, |
my ($dom,$cnum,$context,$details,$logmsg,$clonemsg,$newusermsg,$addresult, |
$keysmsg,$domdefs,$longroles,$coderef,$customhash) = @_; |
$enrollcount,$output,$keysmsg,$domdefs,$longroles,$coderef,$customhash, |
|
$callercontext,$user_lh) = @_; |
unless ((ref($details) eq 'HASH') && (ref($domdefs) eq 'HASH') && |
unless ((ref($details) eq 'HASH') && (ref($domdefs) eq 'HASH') && |
(ref($longroles) eq 'HASH')) { |
(ref($longroles) eq 'HASH')) { |
return ('error: Invalid request'); |
return ('error: Invalid request'); |
Line 1643 sub course_creation {
|
Line 1649 sub course_creation {
|
} |
} |
my %reqdetails = &build_batchcreatehash($dom,$context,$details,$owneremail,$domdefs); |
my %reqdetails = &build_batchcreatehash($dom,$context,$details,$owneremail,$domdefs); |
my $cid = &LONCAPA::batchcreatecourse::build_course($dom,$cnum,'requestcourses', |
my $cid = &LONCAPA::batchcreatecourse::build_course($dom,$cnum,'requestcourses', |
\%reqdetails,$longroles,$logmsg,$newusermsg,$addresult, |
\%reqdetails,$longroles,$logmsg,$clonemsg,$newusermsg,$addresult, |
$enrollcount,$output,$keysmsg,$ownerdom,$ownername,$cnum,$crstype,$coderef); |
$enrollcount,$output,$keysmsg,$ownerdom,$ownername,$cnum,$crstype, |
|
$coderef,$callercontext,$user_lh); |
my $postprocess; |
my $postprocess; |
if ($cid eq "/$dom/$cnum") { |
if ($cid eq "/$dom/$cnum") { |
$result = 'created'; |
$result = 'created'; |
Line 1664 sub course_creation {
|
Line 1671 sub course_creation {
|
sub build_batchcreatehash { |
sub build_batchcreatehash { |
my ($dom,$context,$details,$owneremail,$domdefs) = @_; |
my ($dom,$context,$details,$owneremail,$domdefs) = @_; |
my %batchhash; |
my %batchhash; |
my @items = qw{owner domain coursehome clonecrs clonedom datemode dateshift enrollstart enrollend accessstart accessend sections crosslists users uniquecode}; |
my @items = qw{owner domain coursehome clonecrs clonedom datemode dateshift tinyurls enrollstart enrollend accessstart accessend sections crosslists users uniquecode}; |
if ((ref($details) eq 'HASH') && (ref($domdefs) eq 'HASH')) { |
if ((ref($details) eq 'HASH') && (ref($domdefs) eq 'HASH')) { |
my $emailenc = &escape($owneremail); |
my $emailenc = &escape($owneremail); |
my $owner = $details->{'owner'}.':'.$details->{'domain'}; |
my $owner = $details->{'owner'}.':'.$details->{'domain'}; |
Line 2017 sub process_official_reqs {
|
Line 2024 sub process_official_reqs {
|
$longroles{$role}=&Apache::lonnet::plaintext($role); |
$longroles{$role}=&Apache::lonnet::plaintext($role); |
} |
} |
my %domdefs = &Apache::lonnet::get_domain_defaults($dom); |
my %domdefs = &Apache::lonnet::get_domain_defaults($dom); |
my ($output,$linefeed); |
my ($output,$linefeed,$user_lh); |
if ($context eq 'auto') { |
if ($context eq 'auto') { |
$linefeed = "\n"; |
$linefeed = "\n"; |
|
$user_lh = &Apache::loncommon::user_lang($dcname,$dcdom); |
} else { |
} else { |
$linefeed = '<br />'."\n"; |
$linefeed = '<br />'."\n"; |
} |
} |
Line 2081 sub process_official_reqs {
|
Line 2089 sub process_official_reqs {
|
$reqstatus = $disposition; |
$reqstatus = $disposition; |
if ($disposition eq 'process') { |
if ($disposition eq 'process') { |
my ($logmsg,$newusermsg,$addresult,$enrollcount,$response,$keysmsg,$code); |
my ($logmsg,$newusermsg,$addresult,$enrollcount,$response,$keysmsg,$code); |
|
my $clonemsg = []; |
my %customitems; |
my %customitems; |
my $fullname = &Apache::loncommon::plainname($ownername,$ownerdom); |
my $fullname = &Apache::loncommon::plainname($ownername,$ownerdom); |
my $inprocess = &Apache::lonnet::auto_crsreq_update($dom,$cnum,$crstype,'process',$ownername, |
my $inprocess = &Apache::lonnet::auto_crsreq_update($dom,$cnum,$crstype,'process',$ownername, |
Line 2096 sub process_official_reqs {
|
Line 2105 sub process_official_reqs {
|
$customitems{'_LC_clonefrom'} = $history{'details'}{'clonedom'}.'_'.$history{'details'}{'clonecrs'}; |
$customitems{'_LC_clonefrom'} = $history{'details'}{'clonedom'}.'_'.$history{'details'}{'clonecrs'}; |
} |
} |
my ($result,$postprocess) = |
my ($result,$postprocess) = |
&course_creation($dom,$cnum,'domain',$history{'details'},\$logmsg,\$newusermsg,\$addresult, |
&course_creation($dom,$cnum,'domain',$history{'details'},\$logmsg,$clonemsg,\$newusermsg, |
\$enrollcount,\$response,\$keysmsg,\%domdefs,\%longroles,\$code,\%customitems); |
\$addresult,\$enrollcount,\$response,\$keysmsg,\%domdefs,\%longroles, |
|
\$code,\%customitems,$context,$user_lh); |
if ($result eq 'created') { |
if ($result eq 'created') { |
$disposition = 'created'; |
$disposition = 'created'; |
$reqstatus = 'created'; |
$reqstatus = 'created'; |
Line 2112 sub process_official_reqs {
|
Line 2122 sub process_official_reqs {
|
[{ |
[{ |
mt => 'Your requested course: [_1], (queued pending validation) has now been created.', |
mt => 'Your requested course: [_1], (queued pending validation) has now been created.', |
args => [$cdescr], |
args => [$cdescr], |
}, |
}]; |
|
if ((ref($clonemsg) eq 'ARRAY') && (@{$clonemsg})) { |
|
push(@{$approvedmsg},@{$clonemsg}); |
|
} |
|
push(@{$approvedmsg}, |
{ |
{ |
mt => 'Visit [_1] to log-in and access the course.', |
mt => 'Visit [_1] to log-in and access the course.', |
args => [$firsturl], |
args => [$firsturl], |
}, |
}, |
{ |
{ |
mt => 'If currently logged-in to LON-CAPA, log-out and log-in again to select your new course role.' |
mt => 'If currently logged-in to LON-CAPA, log-out and log-in again to select your new course role.', |
}]; |
args => [], |
|
} |
|
); |
my $sender = $dcname.':'.$dcdom; |
my $sender = $dcname.':'.$dcdom; |
if (ref($postprocess) eq 'HASH') { |
if (ref($postprocess) eq 'HASH') { |
if (ref($postprocess->{'createdmsg'}) eq 'ARRAY') { |
if (ref($postprocess->{'createdmsg'}) eq 'ARRAY') { |