Diff for /loncom/interface/loncoursequeueadmin.pm between versions 1.40 and 1.41

version 1.40, 2013/12/25 20:43:46 version 1.41, 2014/01/03 18:39:51
Line 213  sub send_selfserve_notification { Line 213  sub send_selfserve_notification {
                       mt =>'[_1]As Domain Coordinator, use: [_2]Main Menu -> Create users or modify the roles and privileges of users -> Authoring space reqests[_3]to display a list of pending requests, which you can either approve or reject.',                        mt =>'[_1]As Domain Coordinator, use: [_2]Main Menu -> Create users or modify the roles and privileges of users -> Authoring space reqests[_3]to display a list of pending requests, which you can either approve or reject.',
                       args => ["\n","\n\n  ","\n\n"],                        args => ["\n","\n\n  ","\n\n"],
                      });                       });
   
     } elsif ($context eq 'requestauthor') {      } elsif ($context eq 'requestauthor') {
         $rawsubj = 'Authoring space request';          $rawsubj = 'Authoring space request';
         $msgtxt = 'Your request for an authoring space requested on [_1]has been reviewed by a Domain Coordinator.';          $msgtxt = 'Your request for an authoring space requested on [_1]has been reviewed by a Domain Coordinator.';
Line 229  sub send_selfserve_notification { Line 228  sub send_selfserve_notification {
         if (ref($textstr) eq 'ARRAY') {          if (ref($textstr) eq 'ARRAY') {
             push(@rawmsg,@{$textstr});              push(@rawmsg,@{$textstr});
         }          }
       } elsif ($context eq 'queuedcrsreq') {
           $rawsubj = 'Course Request Queued';
           if (ref($textstr) eq 'ARRAY') {
               push(@rawmsg,@{$textstr});
           }
       } elsif ($context eq 'createdcrsreq') {
           $rawsubj = 'Course Creation Information';
           if (ref($textstr) eq 'ARRAY') {
               push(@rawmsg,@{$textstr});
           }
     }      }
     my @to_notify = split(/,/,$notifylist);      my @to_notify = split(/,/,$notifylist);
     my $numsent = 0;      my $numsent = 0;
Line 789  sub update_request_queue { Line 798  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);                              my ($logmsg,$newusermsg,$addresult,$enrollcount,$response,$keysmsg,$code,%customitems);
                             my $result = &course_creation($cdom,$cnum,$context,$history{'details'},\$logmsg,                              my $fullname = '';
                                                       \$newusermsg,\$addresult,\$enrollcount,                              my $inprocess = &Apache::lonnet::auto_crsreq_update($cdom,$cnum,$crstype,'process',$ownername,
                                                       \$response,\$keysmsg,\%domdefs,$longroles,\$code);                                                                                  $ownerdom,$fullname,$coursedesc);
                               if (ref($inprocess) eq 'HASH') {
                                   foreach my $key (keys(%{$inprocess})) {
                                       if (exists($history{'details'}{$key})) { 
                                           $customitems{$key} = $history{'details'}{$key};
                                       }
                                   }
                               }
                               my ($result,$postprocess) = &course_creation($cdom,$cnum,$context,$history{'details'},\$logmsg,
                                                           \$newusermsg,\$addresult,\$enrollcount,
                                                           \$response,\$keysmsg,\%domdefs,$longroles,\$code,\%customitems);
                             if ($result eq 'created') {                              if ($result eq 'created') {
                                 if ($crstype eq 'community') {                                  if ($crstype eq 'community') {
                                     $approvedmsg = $approvalmsg{'community'};                                      $approvedmsg = $approvalmsg{'community'};
Line 812  sub update_request_queue { Line 831  sub update_request_queue {
                                             });                                              });
                                         $codes{$cnum} = $code;                                          $codes{$cnum} = $code;
                                     }                                      }
                                       if (ref($postprocess) eq 'HASH') {
                                           if (ref($postprocess->{'createdmsg'}) eq 'ARRAY') {
                                               foreach my $item (@{$postprocess->{'createdmsg'}}) {
                                                   if (ref($item) eq 'HASH') {
                                                       if ($item->{'mt'} ne '') {
                                                           push(@{$approvedmsg},$item);
                                                       }
                                                   }
                                               }
                                           }
                                       }
                                 }                                  }
                                 push(@completed,$cnum);                                  push(@completed,$cnum);
                                                                   
Line 1325  sub get_student_counts { Line 1355  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,$newusermsg,$addresult,$enrollcount,$output,
         $keysmsg,$domdefs,$longroles,$coderef) =  @_;          $keysmsg,$domdefs,$longroles,$coderef,$customhash) =  @_;
     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';
     }      }
     my ($result,$ownername,$ownerdom);      my ($result,$ownername,$ownerdom);
     my $crstype = $details->{'crstype'};      my $crstype = $details->{'crstype'};
       my $coursedesc = $details->{'cdescr'};
     my %domconfig = &Apache::lonnet::get_dom('configuration',['requestauthor'],$dom);      my %domconfig = &Apache::lonnet::get_dom('configuration',['requestauthor'],$dom);
     if (ref($domconfig{'requestcourses'}) eq 'HASH') {      if (ref($domconfig{'requestcourses'}) eq 'HASH') {
         if (ref($domconfig{'requestcourses'}{'uniquecode'}) eq 'HASH') {          if (ref($domconfig{'requestcourses'}{'uniquecode'}) eq 'HASH') {
Line 1347  sub course_creation { Line 1378  sub course_creation {
         $ownername = $env{'user.name'};          $ownername = $env{'user.name'};
         $ownerdom  = $env{'user.domain'};          $ownerdom  = $env{'user.domain'};
     }      }
       my $fullname = &Apache::loncommon::plainname($ownername,$ownerdom);
     my $owneremail;      my $owneremail;
     my %emails = &Apache::loncommon::getemails($ownername,$ownerdom);      my %emails = &Apache::loncommon::getemails($ownername,$ownerdom);
     foreach my $email ('permanentemail','critnotification','notification') {      foreach my $email ('permanentemail','critnotification','notification') {
Line 1357  sub course_creation { Line 1389  sub course_creation {
     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,$newusermsg,$addresult,
                   $enrollcount,$output,$keysmsg,$ownerdom,$ownername,$cnum,$crstype,$coderef);                    $enrollcount,$output,$keysmsg,$ownerdom,$ownername,$cnum,$crstype,$coderef);
       my $postprocess;
     if ($cid eq "/$dom/$cnum") {      if ($cid eq "/$dom/$cnum") {
         $result = 'created';          $result = 'created';
           my $code;
           if (ref($coderef)) {
               $code = $$coderef;
           }
           $postprocess = &Apache::lonnet::auto_crsreq_update($dom,$cnum,$crstype,$result,$ownername,
                                                              $ownerdom,$fullname,$coursedesc,$code,$customhash);
     } else {      } else {
         $result = 'error: '.$cid;          $result = 'error: '.$cid;
     }      }
     return $result;      return ($result,$postprocess);
 }  }
   
 sub build_batchcreatehash {  sub build_batchcreatehash {
Line 1388  sub build_batchcreatehash { Line 1427  sub build_batchcreatehash {
         if ($details->{'crstype'} eq 'community') {          if ($details->{'crstype'} eq 'community') {
             $batchhash{'crstype'} = 'Community';              $batchhash{'crstype'} = 'Community';
         } else {          } else {
               if ($details->{'crstype'} eq 'textbook') {
                   if ($details->{'clonecrs'} && $details->{'clonedom'}) {
                       my %clonedfrom = &Apache::lonnet::coursedescription($details->{'clonedom'}.'_'.$details->{'clonecrs'});
                       $batchhash{'textbook'} = $clonedfrom{'description'};
                   }
               }
             $batchhash{'crstype'} = 'Course';              $batchhash{'crstype'} = 'Course';
         }          }
         my ($owner_firstname,$owner_lastname);          my ($owner_firstname,$owner_lastname);
Line 1725  sub process_official_reqs { Line 1770  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 $result = &course_creation($dom,$cnum,'domain',$history{'details'},\$logmsg,\$newusermsg,\$addresult,\$enrollcount,\$response,\$keysmsg,\%domdefs,\%longroles,\$code);                      my %customitems;
                       my $fullname = &Apache::loncommon::plainname($ownername,$ownerdom);
                       my $inprocess = &Apache::lonnet::auto_crsreq_update($dom,$cnum,$crstype,'process',$ownername,
                                                                           $ownerdom,$fullname,$cdescr);
                       if (ref($inprocess) eq 'HASH') {
                           foreach my $key (keys(%{$inprocess})) {
                               if (exists($history{'details'}{$key})) {
                                   $customitems{$key} = $history{'details'}{$key};
                               }
                           }
                       }
                       my ($result,$postprocess) = 
                           &course_creation($dom,$cnum,'domain',$history{'details'},\$logmsg,\$newusermsg,\$addresult,
                                            \$enrollcount,\$response,\$keysmsg,\%domdefs,\%longroles,\$code,\%customitems);
                     if ($result eq 'created') {                      if ($result eq 'created') {
                         $disposition = 'created';                          $disposition = 'created';
                         $reqstatus = 'created';                          $reqstatus = 'created';
Line 1749  sub process_official_reqs { Line 1807  sub process_official_reqs {
                                     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.'
                                  }];                                   }];
                             my $sender = $dcname.':'.$dcdom;                              my $sender = $dcname.':'.$dcdom;
                               if (ref($postprocess) eq 'HASH') {
                                   if (ref($postprocess->{'createdmsg'}) eq 'ARRAY') {
                                       foreach my $item (@{$postprocess->{'createdmsg'}}) {
                                           if (ref($item) eq 'HASH') {
                                                if ($item->{'mt'} ne '') {
                                                    push(@{$approvedmsg},$item);
                                                }
                                           }
                                       }
                                   }
                               }
                             &send_selfserve_notification($owner,$approvedmsg,                              &send_selfserve_notification($owner,$approvedmsg,
                                                          $cid,$cdescr,$now,                                                           $cid,$cdescr,$now,
                                                          $beneficiary,$sender,                                                           $beneficiary,$sender,

Removed from v.1.40  
changed lines
  Added in v.1.41


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