Diff for /loncom/interface/lonrequestcourse.pm between versions 1.19 and 1.23

version 1.19, 2009/08/20 21:15:37 version 1.23, 2009/08/22 21:08:39
Line 116  use LONCAPA qw(:DEFAULT :match); Line 116  use LONCAPA qw(:DEFAULT :match);
   
 sub handler {  sub handler {
     my ($r) = @_;      my ($r) = @_;
       &Apache::loncommon::content_type($r,'text/html');
       $r->send_http_header;
     if ($r->header_only) {      if ($r->header_only) {
         &Apache::loncommon::content_type($r,'text/html');  
         $r->send_http_header;  
         return OK;          return OK;
     }      }
     &Apache::loncommon::content_type($r,'text/html');  
     $r->send_http_header;  
   
     &Apache::lonhtmlcommon::clear_breadcrumbs();      &Apache::lonhtmlcommon::clear_breadcrumbs();
     my $dom = &get_course_dom();      my $dom = &get_course_dom();
Line 159  sub handler { Line 157  sub handler {
     $states{'view'} = ['pick_request','details','cancel','removal'];      $states{'view'} = ['pick_request','details','cancel','removal'];
     $states{'log'} = ['filter','display'];      $states{'log'} = ['filter','display'];
     $states{'new'} = ['courseinfo','enrollment','personnel','review','process'];      $states{'new'} = ['courseinfo','enrollment','personnel','review','process'];
   
     if (($action eq 'new') && ($env{'form.crstype'} eq 'official')) {      if (($action eq 'new') && ($env{'form.crstype'} eq 'official')) {
         unless ($env{'form.state'} eq 'crstype') {          unless ($env{'form.state'} eq 'crstype') {
             unshift (@{$states{'new'}},'codepick');              unshift(@{$states{'new'}},'codepick');
         }          }
     }      }
   
Line 793  sub print_request_form { Line 792  sub print_request_form {
                 $message = '<div class="LC_warning">'.                  $message = '<div class="LC_warning">'.
                            &mt('No course was found matching your choice of institutional course category.');                             &mt('No course was found matching your choice of institutional course category.');
             }              }
             unless ($code_chk eq 'ok') {              unless ($code_chk eq 'valid') {
                 $prev = 'crstype';                  $prev = 'crstype';
             }              }
             $r->print($message);              $r->print($message);
Line 811  sub print_request_form { Line 810  sub print_request_form {
                 $r->print('<div>'.&Apache::lonhtmlcommon::start_pick_box().$codepicker.                  $r->print('<div>'.&Apache::lonhtmlcommon::start_pick_box().$codepicker.
                           &Apache::lonhtmlcommon::end_pick_box().'</div>');                            &Apache::lonhtmlcommon::end_pick_box().'</div>');
             } else {              } else {
                   $next = $states->{$action}[$page+2];
                 $r->print(&courseinfo_form($dom,$formname,$crstype,$next));                  $r->print(&courseinfo_form($dom,$formname,$crstype,$next));
             }              }
         } else {          } else {
               if ($crstype eq 'official') {
                   $next = $states->{$action}[$page+2];
               }
             $r->print(&courseinfo_form($dom,$formname,$crstype,$next));              $r->print(&courseinfo_form($dom,$formname,$crstype,$next));
         }          }
     } elsif ($prev eq 'codepick') {      } elsif ($prev eq 'codepick') {
           if ($env{'form.instcode'} eq '') {
               $prev = $states->{$action}[$page-2];
           }
         $r->print(&courseinfo_form($dom,$formname,$crstype,$next));          $r->print(&courseinfo_form($dom,$formname,$crstype,$next));
     } elsif ($state eq 'enrollment') {      } elsif ($state eq 'enrollment') {
         if ($crstype eq 'official') {          if ($crstype eq 'official') {
Line 1867  sub print_request_outcome { Line 1873  sub print_request_outcome {
                         }                          }
                     }                      }
                 }                  }
                 $xlistinfo .= $env{'form.crosslist_'.$i.'_instsec'};                  $crosslistings{$i}{'instcode'} = $xlistinfo;
                 $crosslistings{$i}{'inst'} = $xlistinfo;                  $crosslistings{$i}{'instsec'} = $env{'form.crosslist_'.$i.'_instsec'}; 
                 $crosslistings{$i}{'loncapa'} = $env{'form.crosslist_'.$i.'_lcsec'};                  $crosslistings{$i}{'loncapa'} = $env{'form.crosslist_'.$i.'_lcsec'};
             }              }
         }          }
Line 2018  sub print_request_outcome { Line 2024  sub print_request_outcome {
             $disposition = &check_autolimit($env{'user.name'},$env{'user.domain'},              $disposition = &check_autolimit($env{'user.name'},$env{'user.domain'},
                                             $dom,$crstype,$limit,\$message);                                              $dom,$crstype,$limit,\$message);
         } elsif ($val eq 'validate') {          } elsif ($val eq 'validate') {
             my $inststatuslist;              my ($inststatuslist,$validationchk,$validation);
             if (@inststatuses > 0) {              if (@inststatuses > 0) {
                 $inststatuslist = join(',',@inststatuses);                  $inststatuslist = join(',',@inststatuses);
             }              }
Line 2026  sub print_request_outcome { Line 2032  sub print_request_outcome {
             if (@instsections > 0) {              if (@instsections > 0) {
                 $instseclist = join(',',@instsections);                  $instseclist = join(',',@instsections);
             }              }
             my $validation =               $validationchk = 
                 &Apache::lonnet::auto_validate_instcode('',$dom,$instcode,                  &Apache::lonnet::auto_courserequest_validation($dom,
                     $env{'user.name'}.':'.$env{'user.domain'},$inststatuslist,                      $env{'user.name'}.':'.$env{'user.domain'},$crstype,
                     $instseclist);                      $inststatuslist,$instcode,$instseclist);
             if ($validation eq 'valid') {              if ($validationchk =~ /:/) {
                 $disposition = 'process';                  ($validation,$message) = split(':',$validationchk);
             } elsif ($validation eq 'rejected') {              } else {
                 $disposition = 'rejected';                  $validation = $validationchk;
             } elsif ($validation eq 'pending') {              }
                 $disposition = 'pending';              if ($validation =~ /^error(.*)$/) {
             } elsif ($disposition eq 'approval') {  
                 $disposition = 'approval';  
             } elsif ($disposition =~ /^error(.*)$/) {  
                 $disposition = 'approval';                  $disposition = 'approval';
                 $validationerror = $1;                  $validationerror = $1;
             } else {              } else {
                 $disposition = 'approval';                    $disposition = $validation;
             }              }
         } else {          } else {
             $disposition = 'approval';              $disposition = 'approval';
Line 2206  sub get_processtype { Line 2209  sub get_processtype {
             if (ref($domconfig->{'requestcourses'}) eq 'HASH') {              if (ref($domconfig->{'requestcourses'}) eq 'HASH') {
                 %settings = %{$domconfig->{'requestcourses'}};                  %settings = %{$domconfig->{'requestcourses'}};
                 if (ref($settings{$crstype}) eq 'HASH') {                  if (ref($settings{$crstype}) eq 'HASH') {
                     if (($env{'user.adv'}) && (exists($settings{$crstype}{'_LC_adv'}))) {                      if (($env{'user.adv'}) && ($settings{$crstype}{'_LC_adv'} ne '')) {
                         $val = $settings{$crstype}{'_LC_adv'};                          $val = $settings{$crstype}{'_LC_adv'};
                         @{$inststatuses} = ('_LC_adv_');                          @{$inststatuses} = ('_LC_adv_');
                     } else {                      } else {
Line 2365  sub retrieve_settings { Line 2368  sub retrieve_settings {
                         my %crscode = (                          my %crscode = (
                                         $i => $reqinfo{'crosslistings'}{$i}{'instcode'},                                          $i => $reqinfo{'crosslistings'}{$i}{'instcode'},
                                       );                                        );
                         &extract_instcode($dom,'crosslist',\%crscode,$1,$xlistsec);                          &extract_instcode($dom,'crosslist',\%crscode,$i,$xlistsec);
                     }                      }
                 }                  }
             }              }
Line 2391  sub retrieve_settings { Line 2394  sub retrieve_settings {
                                                 if (grep(/^\Q$sec\E/,@currsec)) {                                                  if (grep(/^\Q$sec\E/,@currsec)) {
                                                     $env{'form.person_'.$i.'_sec'} = $sec;                                                      $env{'form.person_'.$i.'_sec'} = $sec;
                                                 } else {                                                  } else {
                                                     push (@newsecs,$sec);                                                      push(@newsecs,$sec);
                                                 }                                                  }
                                             }                                              }
                                         }                                          }

Removed from v.1.19  
changed lines
  Added in v.1.23


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