Diff for /loncom/interface/loncoursequeueadmin.pm between versions 1.52.2.2.2.1 and 1.52.2.2.2.2

version 1.52.2.2.2.1, 2017/06/22 02:11:26 version 1.52.2.2.2.2, 2020/07/17 23:04:15
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 962  sub update_request_queue { Line 962  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 976  sub update_request_queue { Line 978  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 990  sub update_request_queue { Line 992  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 1588  sub get_student_counts { Line 1593  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 1623  sub course_creation { Line 1629  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 1644  sub course_creation { Line 1651  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 1995  sub process_official_reqs { Line 2002  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 2059  sub process_official_reqs { Line 2067  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 2074  sub process_official_reqs { Line 2083  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 2090  sub process_official_reqs { Line 2100  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') {

Removed from v.1.52.2.2.2.1  
changed lines
  Added in v.1.52.2.2.2.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>