Diff for /loncom/interface/lonrequestcourse.pm between versions 1.54.2.1 and 1.64

version 1.54.2.1, 2010/07/30 23:51:41 version 1.64, 2012/08/14 15:45:06
Line 556  sub form_elements { Line 556  sub form_elements {
     }      }
     if (&Apache::lonnet::auto_run('',$dom)) {      if (&Apache::lonnet::auto_run('',$dom)) {
         my %extras = (          my %extras = (
                        sectotal           => 'hidden',  
                        enrollstart_month  => 'selectbox',                         enrollstart_month  => 'selectbox',
                        enrollstart_hour   => 'selectbox',                         enrollstart_hour   => 'selectbox',
                        enrollend_month    => 'selectbox',                         enrollend_month    => 'selectbox',
Line 572  sub form_elements { Line 571  sub form_elements {
                        addcrosslist       => 'checkbox',                         addcrosslist       => 'checkbox',
                        autoadds           => 'radio',                         autoadds           => 'radio',
                        autodrops          => 'radio',                         autodrops          => 'radio',
                      );          );
         if ($env{'form.sectotal'} > 0) {          my ($instcode,$titlescount) = &get_instcode($dom);
             for (my $i=0; $i<$env{'form.sectotal'}; $i++) {          if ($instcode) {
                 $extras{'sec_'.$i} = 'radio';              my @sections = &Apache::lonnet::auto_get_sections(undef,$dom,$instcode);
                 $extras{'secnum_'.$i} = 'text';              if (@sections) {
                 $extras{'loncapasec_'.$i} = 'text';                  $extras{'sectotal'} = 'hidden';
                   if ($env{'form.sectotal'} > 0) {
                       for (my $i=0; $i<$env{'form.sectotal'}; $i++) {
                           $extras{'sec_'.$i} = 'radio';
                           $extras{'secnum_'.$i} = 'text';
                           $extras{'loncapasec_'.$i} = 'text';
                       }
                   }
               } else {
                   $extras{'addsection'} = 'checkbox';
                   my $sectotal = $env{'form.sectotal'};
                   if ($env{'form.addsection'}) {
                       $sectotal ++;
                   }
                   for (my $i=0; $i<$sectotal; $i++) {
                       $extras{'sec_'.$i} = 'checkbox';
                       $extras{'secnum_'.$i} = 'text',
                       $extras{'loncapasec_'.$i} = 'text',
                   }
             }              }
         }          }
         my $crosslisttotal = $env{'form.crosslisttotal'};          my $crosslisttotal = $env{'form.crosslisttotal'};
Line 587  sub form_elements { Line 604  sub form_elements {
         if (!$crosslisttotal) {          if (!$crosslisttotal) {
             $crosslisttotal = 1;              $crosslisttotal = 1;
         }          }
   
         for (my $i=0; $i<$env{'form.crosslisttotal'}; $i++) {          for (my $i=0; $i<$env{'form.crosslisttotal'}; $i++) {
             if ($numtitles) {              if ($numtitles) {
                 $extras{'crosslist_'.$i.'_'.$lastitem} = 'text';                  $extras{'crosslist_'.$i.'_'.$lastitem} = 'text';
Line 647  sub onload_action { Line 663  sub onload_action {
 sub print_main_menu {  sub print_main_menu {
     my ($r,$can_request,$states,$dom,$jscript,$loaditems,$crumb,$request_domains) = @_;      my ($r,$can_request,$states,$dom,$jscript,$loaditems,$crumb,$request_domains) = @_;
     my ($types,$typename) = &Apache::loncommon::course_types();      my ($types,$typename) = &Apache::loncommon::course_types();
     my $onchange;      my $onchange = 'this.form.submit()';
     unless ($env{'form.interface'} eq 'textual') {  
         $onchange = 'this.form.submit()';  
     }  
   
     my $nextstate_setter = "\n";      my $nextstate_setter = "\n";
     if (ref($states) eq 'HASH') {      if (ref($states) eq 'HASH') {
         foreach my $key (keys(%{$states})) {          foreach my $key (keys(%{$states})) {
Line 1326  sub print_request_form { Line 1338  sub print_request_form {
                             }                              }
                             if ($skipuser) {                              if ($skipuser) {
                                 push(@disallowed,$i);                                  push(@disallowed,$i);
                                 $disallowmsg{$i} = &mt('[_1] was excluded because new users need be from the course domain','<tt>'.$personname.':'.$persondom.'</tt>');                                  $disallowmsg{$i} = &mt('[_1] was excluded because new users need to be from the course domain','<tt>'.$personname.':'.$persondom.'</tt>');
                                 next;                                  next;
                             }                              }
                         }                          }
                         if (&get_cancreate_status($persondom,$personname,$dom)) {                          my $usertype = &get_usertype($persondom,$personname,\%curr_rules,\%got_rules);
                             my ($allowed,$msg) =                           if (&Apache::lonuserutils::can_create_user($dom,'requestcrs',$usertype)) {
                               my ($allowed,$msg,$authtype,$authparam) = 
                                 &check_newuser_rules($persondom,$personname,                                  &check_newuser_rules($persondom,$personname,
                                     \%alerts,\%rulematch,\%inst_results,                                      \%alerts,\%rulematch,\%inst_results,
                                     \%curr_rules,\%got_rules);                                      \%curr_rules,\%got_rules);
                             if ($allowed) {                              if ($allowed) {
                                   my %domdefaults = &Apache::lonnet::get_domain_defaults($persondom);
                                   if ($usertype eq 'official') {
                                       if ($authtype eq '') {
                                           $authtype = $domdefaults{'auth_def'};
                                           $authparam = $domdefaults{'auth_arg_def'};
                                       }
                                   } elsif ($usertype eq 'unofficial') {
                                       if ($authtype eq '') {
                                           $authtype = 'internal';
                                           $authparam = '';
                                       }
                                   } else {
                                       $authtype = $domdefaults{'auth_def'};
                                       $authparam = $domdefaults{'auth_arg_def'};
                                   }
                                   if (($authtype eq '') ||
                                       (($authtype =~/^krb/) && ($authparam eq ''))) {
                                       push(@disallowed,$i);
                                       $disallowmsg{$i} = &mt('[_1] was excluded because institutional information is incomplete for this new user.','<tt>'.$personname.':'.$persondom.'</tt>');
                                       next;
                                   }
                                 if (ref($inst_results{$personname.':'.$persondom}) eq 'HASH') {                                  if (ref($inst_results{$personname.':'.$persondom}) eq 'HASH') {
                                     if ($inst_results{$personname.':'.$persondom}{'lastname'} ne '') {                                      if ($inst_results{$personname.':'.$persondom}{'lastname'} ne '') {
                                         $env{'form.person_'.$i.'_lastname'} = $inst_results{$personname.':'.$persondom}{'lastname'};                                          $env{'form.person_'.$i.'_lastname'} = $inst_results{$personname.':'.$persondom}{'lastname'};
Line 1450  sub print_request_form { Line 1484  sub print_request_form {
         }          }
     }      }
     if ($state eq 'enrollment') {      if ($state eq 'enrollment') {
         push(@excluded,'crosslisttotal');          push(@excluded,('sectotal','crosslisttotal'));
     }      }
     $r->print(&Apache::lonhtmlcommon::echo_form_input(\@excluded).'</form>');      $r->print(&Apache::lonhtmlcommon::echo_form_input(\@excluded).'</form>');
     &display_navbuttons($r,$dom,$formname,$prev,$navtxt{'prev'},$next,      &display_navbuttons($r,$dom,$formname,$prev,$navtxt{'prev'},$next,
Line 1458  sub print_request_form { Line 1492  sub print_request_form {
     return;      return;
 }  }
   
 sub get_cancreate_status {  sub get_usertype {
     my ($persondom,$personname,$dom) = @_;      my ($persondom,$personname,$curr_rules,$got_rules) = @_;
     my ($rules,$ruleorder) =      my ($rules,$ruleorder) =
         &Apache::lonnet::inst_userrules($persondom,'username');          &Apache::lonnet::inst_userrules($persondom,'username');
     my $usertype = &Apache::lonuserutils::check_usertype($persondom,$personname,      my $usertype = &Apache::lonuserutils::check_usertype($persondom,$personname,
                                                          $rules);                                                           $rules,$curr_rules,$got_rules);
     return &Apache::lonuserutils::can_create_user($dom,'requestcrs',$usertype);      return $usertype;
 }  }
   
 sub check_newuser_rules {  sub check_newuser_rules {
Line 1472  sub check_newuser_rules { Line 1506  sub check_newuser_rules {
         $got_rules) = @_;          $got_rules) = @_;
     my $allowed = 1;      my $allowed = 1;
     my $newuser = 1;      my $newuser = 1;
     my ($checkhash,$userchkmsg);      my ($checkhash,$userchkmsg,$authtype,$authparam);
     my $checks = { 'username' => 1 };      my $checks = { 'username' => 1 };
     $checkhash->{$personname.':'.$persondom} = { 'newuser' => $newuser };      $checkhash->{$personname.':'.$persondom} = { 'newuser' => $newuser };
     &Apache::loncommon::user_rule_check($checkhash,$checks,$alerts,$rulematch,      &Apache::loncommon::user_rule_check($checkhash,$checks,$alerts,$rulematch,
Line 1494  sub check_newuser_rules { Line 1528  sub check_newuser_rules {
             }              }
         }          }
     }      }
     return ($allowed,$userchkmsg);      if ($allowed) {
           if (ref($rulematch) eq 'HASH') {
               if (ref($rulematch->{$personname.':'.$persondom}) eq 'HASH') {
                   my $matchedrule = $rulematch->{$personname.':'.$persondom}{'username'};
                   my ($rules,$ruleorder) =
                       &Apache::lonnet::inst_userrules($persondom,'username');
                   if (ref($rules) eq 'HASH') {
                       if (ref($rules->{$matchedrule}) eq 'HASH') {
                           $authtype = $rules->{$matchedrule}{'authtype'};
                           $authparam = $rules->{$matchedrule}{'authparm'};
                       }
                   }
               }
           }
       }
       return ($allowed,$userchkmsg,$authtype,$authparam);
 }  }
   
 sub get_excluded_elements {  sub get_excluded_elements {
Line 1544  sub print_enrollment_menu { Line 1593  sub print_enrollment_menu {
         if (&Apache::lonnet::auto_run('',$dom)) {          if (&Apache::lonnet::auto_run('',$dom)) {
             $output = &show_invalid_crosslists($invalidcrosslist);              $output = &show_invalid_crosslists($invalidcrosslist);
             my ($section_form,$crosslist_form);              my ($section_form,$crosslist_form);
             $section_form = &inst_section_selector($dom,$instcode);              if ($instcode ne '') {
                   $section_form = &inst_section_selector($dom,$instcode);
                   if ($section_form eq '') {
                       my $sectotal = $env{'form.sectotal'};
                       if (!$sectotal) {
                           $sectotal = 1;
                       }
                       if ($env{'form.addsection'}) {
                           $sectotal ++;
                       }
                       for (my $i=0; $i<$sectotal; $i++) {
                           $section_form .= &sections_form($dom,$instcode,$i);
                       }
                       if ($section_form) {
                           $section_form .=
                       &Apache::lonhtmlcommon::row_title(&mt('Add another')).
                       '<input name="sectotal" type="hidden" value="'.$sectotal.'" />'.
                       '<input name="addsection" type="checkbox" value="'.$sectotal.'"'.
                       ' onclick="javascript:nextPage(document.'.$formname.",'".$env{'form.state'}.
                      "'".');" />'.&mt('Add?').&Apache::lonhtmlcommon::row_closure();
                       }
                   }
               }
             if ($section_form) {              if ($section_form) {
                 $sections = &Apache::lonhtmlcommon::row_headline().                  $sections = &Apache::lonhtmlcommon::row_headline().
                             '<h3>'.&Apache::loncommon::help_open_topic('Course_Request_Sections').                              '<h3>'.&Apache::loncommon::help_open_topic('Course_Request_Sections').
Line 1571  sub print_enrollment_menu { Line 1642  sub print_enrollment_menu {
                     ' onclick="javascript:nextPage(document.'.$formname.",'".$env{'form.state'}.                      ' onclick="javascript:nextPage(document.'.$formname.",'".$env{'form.state'}.
                    "'".');" />'.&mt('Add?').&Apache::lonhtmlcommon::row_closure();                     "'".');" />'.&mt('Add?').&Apache::lonhtmlcommon::row_closure();
                 $sections .=  &Apache::lonhtmlcommon::row_headline.                  $sections .=  &Apache::lonhtmlcommon::row_headline.
                               '<h3>'.&mt('Crosslisted courses for auto-enrollment').'</h3>'.                                '<h3>'.&Apache::loncommon::help_open_topic('Course_Request_Crosslist').'&nbsp;'.&mt('Crosslisted courses for auto-enrollment').'</h3>'.
                               &Apache::lonhtmlcommon::row_closure(1).                                &Apache::lonhtmlcommon::row_closure(1).
                               $crosslist_form;                                $crosslist_form;
             }              }
Line 2538  sub print_review { Line 2609  sub print_review {
     if (($env{'form.cloning'}) &&      if (($env{'form.cloning'}) &&
         ($env{'form.clonecrs'} =~ /^$match_name$/) &&           ($env{'form.clonecrs'} =~ /^$match_name$/) && 
         ($env{'form.clonedom'} =~ /^$match_domain$/)) {          ($env{'form.clonedom'} =~ /^$match_domain$/)) {
         my $canclone = &Apache::loncoursequeueadmin::can_clone_course($env{'user.name'},          my $canclone = &Apache::loncoursequeueadmin::can_clone_course($uname,
                            $env{'user.domain'},$env{'form.clonecrs'},$env{'form.clonedom'},                             $udom,$env{'form.clonecrs'},$env{'form.clonedom'},
                            $env{'form.crstype'});                             $env{'form.crstype'});
         if ($canclone) {          if ($canclone) {
             my %courseenv = &Apache::lonnet::userenvironment($env{'form.clonedom'},              my %courseenv = &Apache::lonnet::userenvironment($env{'form.clonedom'},
Line 2829  sub coursecode_form { Line 2900  sub coursecode_form {
                    );                     );
     my %helpitem = (       my %helpitem = ( 
                      instcode => 'Course_Request_Category',                       instcode => 'Course_Request_Category',
                      crosslist => 'Course_Request_Crosslist',  
                    );                     );
     if ((ref($codetitles) eq 'ARRAY') && (ref($cat_titles) eq 'HASH') &&       if ((ref($codetitles) eq 'ARRAY') && (ref($cat_titles) eq 'HASH') && 
         (ref($cat_order))) {          (ref($cat_order))) {
Line 2846  sub coursecode_form { Line 2916  sub coursecode_form {
             my $lastitem = pop(@{$codetitles});              my $lastitem = pop(@{$codetitles});
             my $lastinput = '<input type="text" size="5" name="'.$sel.'_'.                                            $lastitem.'" />';              my $lastinput = '<input type="text" size="5" name="'.$sel.'_'.                                            $lastitem.'" />';
             if (@{$codetitles} > 0) {              if (@{$codetitles} > 0) {
                 $output = &Apache::lonhtmlcommon::row_title(&Apache::loncommon::help_open_topic($helpitem{$context}).'&nbsp;'.$rowtitle{$context}).                  my $helplink;
                   if (defined($helpitem{$context})) {
                       $helplink = &Apache::loncommon::help_open_topic($helpitem{$context}).'&nbsp;';
                   }
                   $output = &Apache::lonhtmlcommon::row_title($helplink.$rowtitle{$context}).
                           '<table><tr>';                            '<table><tr>';
                 if ($context eq 'crosslist') {                  if ($context eq 'crosslist') {
                     $output .= '<td>'.&mt('Include?').'<br />'.                      $output .= '<td>'.&mt('Include?').'<br />'.
Line 2911  sub coursecode_form { Line 2985  sub coursecode_form {
     return $output;      return $output;
 }  }
   
   sub sections_form {
       my ($dom,$instcode,$num) = @_;
       my $rowtitle;
       if ($instcode eq '') {
           $rowtitle = &mt('Sections');
       } else {
           $rowtitle = &mt('Sections of [_1]',$instcode);
       }
       return &Apache::lonhtmlcommon::row_title($rowtitle).
              '<table><tr><td align="center">'.
              '<span class="LC_nobreak">'.&mt('Include?').
              '<input type="checkbox" name="sec_'.$num.'" value="1" /></span>'.
              '</td><td align="center">'.&mt('Institutional section').'<br />'.
              '<input type="text" size="10" name="secnum_'.$num.'" />'.
              '</td><td align="center">'.&mt('LON-CAPA section').'<br />'.
              '<input type="text" size="10" name="loncapasec_'.$num.'" />'.
              '</td></tr></table>'.
              &Apache::lonhtmlcommon::row_closure(1);
   }
   
 sub get_course_dom {  sub get_course_dom {
     my $codedom = &Apache::lonnet::default_login_domain();      my $codedom = &Apache::lonnet::default_login_domain();
     if ($env{'form.showdom'} ne '') {      if ($env{'form.showdom'} ne '') {
Line 3040  sub print_request_outcome { Line 3134  sub print_request_outcome {
                         push(@instsections,$sec);                          push(@instsections,$sec);
                     }                      }
                     $sections{$i}{'loncapa'} = $env{'form.loncapasec_'.$i};                      $sections{$i}{'loncapa'} = $env{'form.loncapasec_'.$i};
                       $sections{$i}{'loncapa'} =~ s/\W//g;
                       if ($sections{$i}{'loncapa'} eq 'none') {
                           $sections{$i}{'loncapa'} = '';
                       }
                 }                  }
             }              }
         }          }
Line 3065  sub print_request_outcome { Line 3163  sub print_request_outcome {
         $enrollstart = '';          $enrollstart = '';
         $enrollend = '';          $enrollend = '';
     }      }
       my (%alerts,%rulematch,%inst_results,%curr_rules,%got_rules,%disallowmsg,%skipped);
     for (my $i=0; $i<$env{'form.persontotal'}; $i++) {      for (my $i=0; $i<$env{'form.persontotal'}; $i++) {
         my $uname = $env{'form.person_'.$i.'_uname'};          my $uname = $env{'form.person_'.$i.'_uname'};
         my $udom = $env{'form.person_'.$i.'_dom'};          my $udom = $env{'form.person_'.$i.'_dom'};
Line 3076  sub print_request_outcome { Line 3175  sub print_request_outcome {
                              lastname     => $env{'form.person_'.$i.'_lastname'},                               lastname     => $env{'form.person_'.$i.'_lastname'},
                              emailaddr    => $env{'form.person_'.$i.'_emailaddr'},                               emailaddr    => $env{'form.person_'.$i.'_emailaddr'},
                                                    };                                                     };
                       if (&Apache::lonnet::homeserver($uname,$udom) eq 'no_host') {
                           my $usertype = &get_usertype($udom,$uname,\%curr_rules,\%got_rules);
                           if (&Apache::lonuserutils::can_create_user($udom,'requestcrs',$usertype)) {
                               my ($allowed,$msg,$authtype,$authparam) =
                                   &check_newuser_rules($udom,$uname,\%alerts,\%rulematch,
                                                        \%inst_results,\%curr_rules,\%got_rules);
                               if ($allowed) {
                                   my %domdefaults = &Apache::lonnet::get_domain_defaults($udom);
                                   if ($usertype eq 'official') {
                                       if ($authtype eq '') {
                                           $authtype = $domdefaults{'auth_def'};
                                           $authparam = $domdefaults{'auth_arg_def'};
                                       } else {
                                           if ($authtype eq 'loc') {
                                               $authtype = 'localauth';
                                           } elsif ($authtype eq 'int') {
                                               $authtype = 'internal';
                                           }
                                           if ($authtype !~ /^(krb4|krb5|internal|localauth)$/) {
                                               $authtype = $domdefaults{'auth_def'};
                                               $authparam = $domdefaults{'auth_arg_def'};
                                           }
                                       }
                                   } elsif ($usertype eq 'unofficial') {
                                       if ($authtype eq '') {
                                           $authtype = 'internal';
                                           $authparam = '';
                                       }
                                   } else {
                                       $authtype = $domdefaults{'auth_def'};
                                       $authparam = $domdefaults{'auth_arg_def'};
                                   }
                                   if (($authtype eq '') ||
                                       (($authtype =~/^krb(4|5)$/) && ($authparam eq '')) ||
                                       ($authtype !~ /^(krb4|krb5|internal|localauth)$/)) {
                                       $skipped{$uname.':'.$udom} = 1;
                                       next;
                                   } else {
                                       $personnel{$uname.':'.$udom}{'authtype'} = $authtype;
                                       $personnel{$uname.':'.$udom}{'autharg'} = $authparam;
                                   }
                               } else {
                                   $skipped{$uname.':'.$udom} = 1;
                                   next;
                               }
                           } else {
                               $skipped{$uname.':'.$udom} = 1;
                               next;
                           }
                       }
                 }                  }
                 my $role = $env{'form.person_'.$i.'_role'};                  my $role = $env{'form.person_'.$i.'_role'};
                 unless ($role eq '') {                  unless ($role eq '') {
Line 3121  sub print_request_outcome { Line 3270  sub print_request_outcome {
             push(@baduname,$uname.':'.$udom);              push(@baduname,$uname.':'.$udom);
         }          }
     }      }
       if (keys(%skipped)) {
           foreach my $key (keys(%skipped)) {
               delete($personnel{$key}); 
           }
       }
     my ($accessstart,$accessend) = &dates_from_form('accessstart','accessend');      my ($accessstart,$accessend) = &dates_from_form('accessstart','accessend');
     my $autodrops = 0;      my $autodrops = 0;
     if ($env{'form.autodrops'}) {      if ($env{'form.autodrops'}) {
Line 3128  sub print_request_outcome { Line 3282  sub print_request_outcome {
     }      }
     my $autoadds = 0;      my $autoadds = 0;
     if ($env{'form.autoadds'}) {      if ($env{'form.autoadds'}) {
         $autodrops = $env{'form.autoadds'};          $autoadds = $env{'form.autoadds'};
     }  
     if ($env{'form.autoadds'}) {  
         $autodrops = $env{'form.autoadds'};  
     }      }
     my $instcode = '';      my $instcode = '';
     if (exists($env{'form.instcode'})) {      if (exists($env{'form.instcode'})) {
Line 3182  sub print_request_outcome { Line 3333  sub print_request_outcome {
                   };                    };
     my (@inststatuses,$storeresult,$creationresult);      my (@inststatuses,$storeresult,$creationresult);
     my $val =       my $val = 
         &Apache::loncoursequeueadmin::get_processtype($env{'user.name'},$env{'user.domain'},          &Apache::loncoursequeueadmin::get_processtype('course',$env{'user.name'},
             $env{'user.adv'},$dom,$crstype,\@inststatuses,\%domconfig);                                                        $env{'user.domain'},$env{'user.adv'},
                                                         $dom,$crstype,\@inststatuses,\%domconfig);
     if ($val eq '') {      if ($val eq '') {
         if ($crstype eq 'official') {          if ($crstype eq 'official') {
             $output = &mt('You are not permitted to request creation of official courses.');              $output = &mt('You are not permitted to request creation of official courses.');
Line 3338  sub print_request_outcome { Line 3490  sub print_request_outcome {
         }          }
         ($storeresult,my $updateresult) =           ($storeresult,my $updateresult) = 
             &Apache::loncoursequeueadmin::update_coursereq_status(\%reqhash,$dom,              &Apache::loncoursequeueadmin::update_coursereq_status(\%reqhash,$dom,
                 $cnum,$reqstatus,'request');                  $cnum,$reqstatus,'request',$env{'user.domain'},$env{'user.name'});
         if ($modified && $queued && $storeresult eq 'ok') {          if ($modified && $queued && $storeresult eq 'ok') {
             if ($crstype eq 'community') {              if ($crstype eq 'community') {
                 $output .= '<p>'.&mt('Your community request has been updated').'</p>';                  $output .= '<p>'.&mt('Your community request has been updated').'</p>';
Line 3593  sub retrieve_settings { Line 3745  sub retrieve_settings {
             }              }
             $env{'form.clonecrs'} = $reqinfo{'clonecrs'};              $env{'form.clonecrs'} = $reqinfo{'clonecrs'};
             $env{'form.clonedom'} = $reqinfo{'clonedom'};              $env{'form.clonedom'} = $reqinfo{'clonedom'};
               if (($reqinfo{'clonecrs'} ne '') && ($reqinfo{'clonedom'} ne '')) {
                   $env{'form.cloning'} = 1;
               }
             $env{'form.datemode'} = $reqinfo{'datemode'};              $env{'form.datemode'} = $reqinfo{'datemode'};
             $env{'form.dateshift'} = $reqinfo{'dateshift'};              $env{'form.dateshift'} = $reqinfo{'dateshift'};
             if (($reqinfo{'crstype'} eq 'official') && ($reqinfo{'instcode'} ne '')) {               if ($reqinfo{'crstype'} eq 'official') {
                  $env{'form.sectotal'} = $reqinfo{'sectotal'};                  $env{'form.autoadds'} = $reqinfo{'autoadds'};
                  $env{'form.crosslisttotal'} = $reqinfo{'crosslisttotal'};                  $env{'form.autodrops'} = $reqinfo{'autodrops'};
                  $env{'form.autoadds'} = $reqinfo{'autoadds'};                  if ($reqinfo{'instcode'} ne '') { 
                  $env{'form.autdrops'} = $reqinfo{'autodrops'};                      $env{'form.sectotal'} = $reqinfo{'sectotal'};
                  $env{'form.instcode'} = $reqinfo{'instcode'};                      $env{'form.crosslisttotal'} = $reqinfo{'crosslisttotal'};
                  my $crscode = {                       $env{'form.instcode'} = $reqinfo{'instcode'};
                                  $cnum => $reqinfo{'instcode'},                      my $crscode = { 
                                };                                      $cnum => $reqinfo{'instcode'},
                  &extract_instcode($dom,'instcode',$crscode,$cnum);                                    };
                       &extract_instcode($dom,'instcode',$crscode,$cnum);
                   }
             }              }
             my @currsec;              my @currsec;
             if (ref($reqinfo{'sections'}) eq 'HASH') {              if (ref($reqinfo{'sections'}) eq 'HASH') {

Removed from v.1.54.2.1  
changed lines
  Added in v.1.64


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.