Diff for /loncom/interface/loncoursequeueadmin.pm between versions 1.2 and 1.4

version 1.2, 2009/08/16 19:16:16 version 1.4, 2009/08/17 04:39:15
Line 77  sub send_selfserve_notification { Line 77  sub send_selfserve_notification {
         $rawsubj = 'Self-enrollment requests processed';          $rawsubj = 'Self-enrollment requests processed';
         push(@rawmsg,{          push(@rawmsg,{
                       mt => 'Enrollment requests in the following course: [_1]have been processed.',                        mt => 'Enrollment requests in the following course: [_1]have been processed.',
                       args => ["\n  $contextdesc\n"],                        args => ["\n  $contextdesc"],
                      });                       });
     } elsif ($context eq 'domainmanagers') {      } elsif ($context eq 'domainmanagers') {
         $rawsubj = 'Course requests reviewed';          $rawsubj = 'Course requests reviewed';
         push(@rawmsg,{          push(@rawmsg,{
                       mt  => 'Course creation requests in the following domain: [_1]have been reviewed.',                        mt  => 'Course creation requests in the following domain: [_1]have been reviewed.',
                       args => ["\n  $contextdesc\n"],                        args => ["\n  $contextdesc"],
                      });                       });
         if (ref($textstr) eq 'ARRAY') {          if (ref($textstr) eq 'ARRAY') {
             push(@rawmsg,@{$textstr});              push(@rawmsg,@{$textstr});
Line 345  sub update_request_queue { Line 345  sub update_request_queue {
         $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,
         @rejections,%courseroles,%communityroles,%domdefs);          @rejections,@rejectionerrors,%courseroles,%communityroles,%domdefs);
     @approvals = &Apache::loncommon::get_env_multiple('form.approvereq');      @approvals = &Apache::loncommon::get_env_multiple('form.approvereq');
     @rejections = &Apache::loncommon::get_env_multiple('form.rejectreq');      @rejections = &Apache::loncommon::get_env_multiple('form.rejectreq');
     $now = time;      $now = time;
Line 546  sub update_request_queue { Line 546  sub update_request_queue {
         @changes = map {$_.'_approval'} (@changes);          @changes = map {$_.'_approval'} (@changes);
     }      }
     if (@rejections) {      if (@rejections) {
         foreach my $user (@rejections) {          foreach my $item (@rejections) {
             if ($context eq 'course') {              if ($context eq 'course') {
                   my $user = $item;
                 &send_selfserve_notification($user,$rejectedmsg,$cid,$coursedesc,                  &send_selfserve_notification($user,$rejectedmsg,$cid,$coursedesc,
                                              $now,$beneficiary,$sender);                                               $now,$beneficiary,$sender);
                 my ($uname,$udom) = split(/:/,$user);                  my ($uname,$udom) = split(/:/,$user);
Line 564  sub update_request_queue { Line 565  sub update_request_queue {
                     push(@warn_rejects,$user);                      push(@warn_rejects,$user);
                 }                  }
             } else {              } else {
                 if (ref($requesthash{$user.'_approval'}) eq 'HASH') {                  my $cnum = $item;
                     if (&Apache::lonnet::homeserver($user,$cdom) eq 'no_host') {                  if (ref($requesthash{$cnum.'_approval'}) eq 'HASH') {
                       if (&Apache::lonnet::homeserver($cnum,$cdom) eq 'no_host') {
                           my $requestkey = $cdom.'_'.$cnum;
                         my $ownername = $requesthash{$cnum.'_approval'}{'ownername'};                          my $ownername = $requesthash{$cnum.'_approval'}{'ownername'};
                         my $ownerdom = $requesthash{$cnum.'_approval'}{'ownerdom'};                          my $ownerdom = $requesthash{$cnum.'_approval'}{'ownerdom'};
                         my $coursedesc = $requesthash{$cnum.'_approval'}{'description'};                          my $coursedesc = $requesthash{$cnum.'_approval'}{'description'};
Line 573  sub update_request_queue { Line 576  sub update_request_queue {
                                                      $cid,$coursedesc,$now,$beneficiary,                                                       $cid,$coursedesc,$now,$beneficiary,
                                                      $sender);                                                       $sender);
                         my %history =                          my %history =
                             &Apache::lonnet::restore($cdom.'_'.$cnum,'courserequests',                              &Apache::lonnet::restore($requestkey,'courserequests',
                                                      $ownerdom,$ownername);                                                       $ownerdom,$ownername);
                         if ((ref($history{'details'}) eq 'HASH') &&                          if ((ref($history{'details'}) eq 'HASH') &&
                             ($history{'disposition'} eq 'approval')) {                              ($history{'disposition'} eq 'approval')) {
Line 586  sub update_request_queue { Line 589  sub update_request_queue {
                                             adjudicator => $env{'user.name'}.':'.$env{'user.domain'},                                              adjudicator => $env{'user.name'}.':'.$env{'user.domain'},
                                               );                                                );
                             my $userresult =                              my $userresult =
                                  &Apache::lonnet::store_userdata($namespace,\%reqhash,$ownerdom,$ownername);                                  &Apache::lonnet::store_userdata(\%reqhash,$requestkey,
                             if ($userresult ne 'ok') {                                                  'courserequests',$ownerdom,$ownername);
                                 push(@warn_rejects,$user);                              if ($userresult eq 'ok') {
                                   my %status = (
                                                  'status:'.$cdom.':'.$cnum => 'rejected'
                                                );
                                   my $statusresult =
                                       &Apache::lonnet::put('courserequests',\%status,
                                                            $ownerdom,$ownername);
                                   if ($statusresult ne 'ok') {
                                       push(@warn_rejects,$cnum);
                                   }
                               } else {
                                   push(@warn_rejects,$cnum);
                             }                              }
                           } else {
                               push(@warn_rejects,$cnum);
                         }                          }
                       } else {
                           push(@existing,$cnum);
                     }                      }
                   } else {
                       push(@rejectionerrors,$cnum);
                 }                  }
             }              }
         }          }
Line 750  sub update_request_queue { Line 770  sub update_request_queue {
             $output .= '</ul></p>';              $output .= '</ul></p>';
         }          }
     }      }
       if (@rejectionerrors) {
           $output .= '<p>'.&mt('The following course creation request rejections could not be fully processed because an error occurred:').'<ul>';
           foreach my $cnum (@rejectionerrors) {
               my $showcourse;
               if (ref($requesthash{$cnum.'_approval'})) {
                   $showcourse = $requesthash{$cnum.'_approval'}{'description'};
               } else {
                   $showcourse = $cnum;
               }
               $output .= '<li>'.$showcourse.'</li>';
           }
           $output .= '</ul></p>';
       }
     if (@warn_approves || @warn_rejects) {      if (@warn_approves || @warn_rejects) {
         if ($context eq 'course') {          if ($context eq 'course') {
             $output .= '<p>'.&mt("For the following users, an error occurred when updating the user's own self-enroll requests record:").'<ul>';              $output .= '<p>'.&mt("For the following users, an error occurred when updating the user's own self-enroll requests record:").'<ul>';
Line 862  sub build_batchcreatehash { Line 895  sub build_batchcreatehash {
     return %batchhash;      return %batchhash;
 }  }
   
   sub can_clone_course {
       my ($uname,$udom,$clonecrs,$clonedom) = @_;
       my $canclone;
       my %roleshash = &Apache::lonnet::get_my_roles($uname,$udom,'userroles',['active'],
                                                     ['cc'],[$clonedom]);
       if (exists($roleshash{$clonedom.':'.$clonecrs.':cc'})) {
           $canclone = 1;
       } else {
           my %courseenv = &Apache::lonnet::userenvironment($clonedom,$clonecrs,('cloners'));
           my $cloners = $courseenv{'cloners'};
           if ($cloners ne '') {
               my @cloneable = split(',',$cloners);
               if (grep(/^\*$/,@cloneable)) {
                   $canclone = 1;
               }
               if (grep(/^\*:\Q$udom\E$/,@cloneable)) {
                   $canclone = 1;
               }
               if (grep(/^\Q$uname\E:\Q$udom\E$/,@cloneable)) {
                   $canclone = 1;
               }
           }
       }
       return $canclone;
   }
   
 1;  1;

Removed from v.1.2  
changed lines
  Added in v.1.4


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