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

version 1.23, 2009/08/22 21:08:39 version 1.24, 2009/08/23 03:51:53
Line 363  sub form_elements { Line 363  sub form_elements {
             for (my $i=0; $i<$env{'form.sectotal'}; $i++) {              for (my $i=0; $i<$env{'form.sectotal'}; $i++) {
                 $extras{'sec_'.$i} = 'checkbox',                  $extras{'sec_'.$i} = 'checkbox',
                 $extras{'secnum_'.$i} = 'text',                  $extras{'secnum_'.$i} = 'text',
                 $extras{'loncapasec_'.$i} = 'checkbox',                  $extras{'loncapasec_'.$i} = 'text',
             }              }
         }          }
         my $crosslisttotal = $env{'form.crosslisttotal'};          my $crosslisttotal = $env{'form.crosslisttotal'};
         if ($env{'form.addcrosslist'}) {          if ($env{'form.addcrosslist'}) {
             $crosslisttotal ++;              $crosslisttotal ++;
         }          }
         if (!defined($crosslisttotal)) {          if (!$crosslisttotal) {
             $crosslisttotal = 1;              $crosslisttotal = 1;
         }          }
         if ($crosslisttotal > 0) {          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';              }
                 }              if (@codetitles > 0) {
                 if (@codetitles > 0) {                  foreach my $item (@codetitles) {
                     foreach my $item (@codetitles) {                      $extras{'crosslist_'.$i.'_'.$item} = 'selectbox';
                         $extras{'crosslist_'.$i.'_'.$item} = 'selectbox';  
                     }  
                 }                  }
                 $extras{'crosslist_'.$i} = 'checkbox';  
                 $extras{'crosslist_'.$i.'_instsec'} = 'text',  
                 $extras{'crosslist_'.$i.'_lcsec'} = 'text',  
             }              }
               $extras{'crosslist_'.$i} = 'checkbox';
               $extras{'crosslist_'.$i.'_instsec'} = 'text',
               $extras{'crosslist_'.$i.'_lcsec'} = 'text',
         }          }
         my %mergedhash = (%{$elements{'new'}{'enrollment'}},%extras);          my %mergedhash = (%{$elements{'new'}{'enrollment'}},%extras);
         %{$elements{'new'}{'enrollment'}} = %mergedhash;          %{$elements{'new'}{'enrollment'}} = %mergedhash;
Line 856  sub print_request_form { Line 854  sub print_request_form {
         $r->print($result);          $r->print($result);
     }      }
     my @excluded = &get_excluded_elements($dom,$states,$action,$state);      my @excluded = &get_excluded_elements($dom,$states,$action,$state);
       if ($state eq 'personnel') {
           push(@excluded,'persontotal');
       }
     $r->print(&Apache::lonhtmlcommon::echo_form_input(\@excluded).'</form>');      $r->print(&Apache::lonhtmlcommon::echo_form_input(\@excluded).'</form>');
     &display_navbuttons($r,$formname,$prev,$navtxt{'prev'},$next,$navtxt{'next'},$state);      &display_navbuttons($r,$formname,$prev,$navtxt{'prev'},$next,$navtxt{'next'},$state);
     return;      return;
Line 908  sub print_enrollment_menu { Line 909  sub print_enrollment_menu {
             my ($section_form,$crosslist_form,$autoenroll_form);              my ($section_form,$crosslist_form,$autoenroll_form);
             $section_form = &inst_section_selector($dom,$instcode);              $section_form = &inst_section_selector($dom,$instcode);
             my $crosslisttotal = $env{'form.crosslisttotal'};              my $crosslisttotal = $env{'form.crosslisttotal'};
             if (!defined($crosslisttotal)) {              if (!$crosslisttotal) {
                 $crosslisttotal = 1;                  $crosslisttotal = 1;
             }              }
             if ($env{'form.addcrosslist'}) {              if ($env{'form.addcrosslist'}) {
Line 974  sub inst_section_selector { Line 975  sub inst_section_selector {
                     &Apache::loncommon::start_data_table().                      &Apache::loncommon::start_data_table().
                     &Apache::loncommon::start_data_table_row().                      &Apache::loncommon::start_data_table_row().
                     '<th>'.&mt('Include?').'<input type="hidden" name="sectotal" '.                      '<th>'.&mt('Include?').'<input type="hidden" name="sectotal" '.
                     'value="'.$sectotal.'"</th>'.                      'value="'.$sectotal.'"  /></th>'.
                     '<th>'.&mt('Institutional Section').'</th>'.                      '<th>'.&mt('Institutional Section').'</th>'.
                     '<th>'.&mt('LON-CAPA section').'</th>'.                      '<th>'.&mt('LON-CAPA section').'</th>'.
                     &Apache::loncommon::end_data_table_row();                      &Apache::loncommon::end_data_table_row();
         for (my $i=0; $i<@sections; $i++) {          for (my $i=0; $i<@sections; $i++) {
             my $colflag = $i%2;              my $colflag = $i%2;
               my $checked = ' checked="checked"';
               if ($env{'form.origcnum'}) {
                   $checked='';
               }
             $output .= &Apache::loncommon::start_data_table_row().              $output .= &Apache::loncommon::start_data_table_row().
                        '<td><input type="checkbox" name="sec_'.$i.                         '<td><input type="checkbox" name="sec_'.$i.
                        '" checked="checked" /></td>'.                         '"'.$checked.' value="1" /></td>'.
                        '<td>'.$sections[$i].                         '<td>'.$sections[$i].
                        '<input type="hidden" name="secnum_'.$i.'" value="'.                         '<input type="hidden" name="secnum_'.$i.'" value="'.
                        $sections[$i].'" /></td>'.                         $sections[$i].'" /></td>'.
Line 1430  sub print_review { Line 1435  sub print_review {
                                &mt('Institutional course/section').'</th>'.                                 &mt('Institutional course/section').'</th>'.
                                '<th>'.&mt('LON-CAPA section').'</th></tr>';                                 '<th>'.&mt('LON-CAPA section').'</th></tr>';
             my $xlistinfo;              my $xlistinfo;
             if ($env{'form.crosslisttotal'}) {              my $crosslisttotal = $env{'form.crosslisttotal'};
                 for (my $i=0; $i<$env{'form.crosslisttotal'}; $i++) {              if (!$crosslisttotal) {
                     if ($env{'form.crosslist_'.$i}) {                  $crosslisttotal = 1;
                         $xlistinfo .= '<tr><td>';              }
                         if (ref($code_order) eq 'ARRAY') {              for (my $i=0; $i<$crosslisttotal; $i++) {
                             if (@{$code_order} > 0) {                  if ($env{'form.crosslist_'.$i}) {
                                 foreach my $item (@{$code_order}) {                      $xlistinfo .= '<tr><td>';
                                     $xlistinfo .= $env{'form.crosslist_'.$i.'_'.$item};                      if (ref($code_order) eq 'ARRAY') {
                                 }                          if (@{$code_order} > 0) {
                               foreach my $item (@{$code_order}) {
                                   $xlistinfo .= $env{'form.crosslist_'.$i.'_'.$item};
                             }                              }
                         }                          }
                         $xlistinfo .= $env{'form.crosslist_'.$i.'_instsec'}.'</td><td>';  
                         if ($env{'form.crosslist_'.$i.'_lcsec'}) {  
                             $xlistinfo .= $env{'form.crosslist_'.$i.'_lcsec'};  
                         } else {  
                             $xlistinfo .= &mt('None');  
                         }  
                         $xlistinfo .= '</td></tr>';  
                     }                      }
                       $xlistinfo .= $env{'form.crosslist_'.$i.'_instsec'}.'</td><td>';
                       if ($env{'form.crosslist_'.$i.'_lcsec'}) {
                           $xlistinfo .= $env{'form.crosslist_'.$i.'_lcsec'};
                       } else {
                           $xlistinfo .= &mt('None');
                       }
                       $xlistinfo .= '</td></tr>';
                 }                  }
             }              }
             if ($xlistinfo eq '') {              if ($xlistinfo eq '') {
                 $xlistinfo = '<tr><td colspan="2">'.&mt('None').'</td></tr>';                  $xlistinfo = '<tr><td colspan="2">'.&mt('None').'</td></tr>';
             }              }
             $section_values .= $xlistinfo.'</table></td>';              $section_values .= $xlistinfo;
         }          }
           $section_values .= '</table></td>';
     }      }
   
     my %ctxt = &clone_text();      my %ctxt = &clone_text();
Line 1531  sub print_review { Line 1539  sub print_review {
                     }                      }
                 }                  }
             }              }
             my $showsec = 'None';              my $showsec;
             if (@allsecs) {              if (@allsecs) {
                 $showsec = join(', ',@allsecs);                  $showsec = join(', ',@allsecs);
             }              }
               if ($showsec eq '') {
                   $showsec = &mt('None');
               }
               if ($env{'form.person_'.$i.'_role'} eq 'cc') {
                   $showsec = &mt('None');
               }
             $personnel_values .=               $personnel_values .= 
                 '<tr><td>'.$env{'form.person_'.$i.'_firstname'}.' '.                  '<tr><td>'.$env{'form.person_'.$i.'_firstname'}.' '.
                 $env{'form.person_'.$i.'_lastname'}.'</td>'.                  $env{'form.person_'.$i.'_lastname'}.'</td>'.
Line 1832  sub print_request_outcome { Line 1846  sub print_request_outcome {
     my ($dom,$codetitles,$code_order) = @_;      my ($dom,$codetitles,$code_order) = @_;
     my ($output,$cnum,$now,$req_notifylist,$crstype,$enrollstart,$enrollend,      my ($output,$cnum,$now,$req_notifylist,$crstype,$enrollstart,$enrollend,
         %sections,%crosslistings,%personnel,@baduname,@missingdom,%domconfig,);          %sections,%crosslistings,%personnel,@baduname,@missingdom,%domconfig,);
       my $sectotal = $env{'form.sectotal'};
       my $crosslisttotal = 0;
     $cnum = $env{'form.cnum'};      $cnum = $env{'form.cnum'};
     unless ($cnum =~ /^$match_courseid$/) {      unless ($cnum =~ /^$match_courseid$/) {
         $output = &mt('Invalid LON-CAPA course number for the new course')."\n";           $output = &mt('Invalid LON-CAPA course number for the new course')."\n"; 
Line 1874  sub print_request_outcome { Line 1890  sub print_request_outcome {
                     }                      }
                 }                  }
                 $crosslistings{$i}{'instcode'} = $xlistinfo;                  $crosslistings{$i}{'instcode'} = $xlistinfo;
                   if ($xlistinfo ne '') {
                       $crosslisttotal ++;
                   }
                 $crosslistings{$i}{'instsec'} = $env{'form.crosslist_'.$i.'_instsec'};                   $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 1940  sub print_request_outcome { Line 1959  sub print_request_outcome {
     if ($env{'form.autoadds'}) {      if ($env{'form.autoadds'}) {
         $autodrops = $env{'form.autoadds'};          $autodrops = $env{'form.autoadds'};
     }      }
     my $sectotal = 0;  
     if ($env{'form.sectotal'}) {  
         $sectotal = $env{'form.sectotal'};  
     }  
     if ($env{'form.autoadds'}) {      if ($env{'form.autoadds'}) {
         $autodrops = $env{'form.autoadds'};          $autodrops = $env{'form.autoadds'};
     }      }
     my $crosslisttotal = 0;  
     if ($env{'form.crosslisttotal'}) {  
         $crosslisttotal = $env{'form.crosslisttotal'};  
     }  
     my $instcode = '';      my $instcode = '';
     if (exists($env{'form.instcode'})) {      if (exists($env{'form.instcode'})) {
         $instcode = $env{'form.instcode'};          $instcode = $env{'form.instcode'};
Line 2342  sub retrieve_settings { Line 2353  sub retrieve_settings {
                  $env{'form.autoadds'} = $reqinfo{'autoadds'};                   $env{'form.autoadds'} = $reqinfo{'autoadds'};
                  $env{'form.autdrops'} = $reqinfo{'autodrops'};                   $env{'form.autdrops'} = $reqinfo{'autodrops'};
                  $env{'form.instcode'} = $reqinfo{'instcode'};                   $env{'form.instcode'} = $reqinfo{'instcode'};
                  my %crscode = (                   my $crscode = { 
                                  instcode => $reqinfo{'instcode'},                                   $cnum => $reqinfo{'instcode'},
                                );                                 };
                  &extract_instcode($dom,'instcode',\%crscode);                   &extract_instcode($dom,'instcode',$crscode,$cnum);
             }              }
             my @currsec;              my @currsec;
             if (ref($reqinfo{'sections'}) eq 'HASH') {              if (ref($reqinfo{'sections'}) eq 'HASH') {
                 foreach my $i (sort(keys(%{$reqinfo{'sections'}}))) {                  foreach my $i (sort(keys(%{$reqinfo{'sections'}}))) {
                     if (ref($reqinfo{'sections'}{$i}) eq 'HASH') {                      if (ref($reqinfo{'sections'}{$i}) eq 'HASH') {
                         my $sec = $reqinfo{'sections'}{$i}{'inst'};;                          my $sec = $reqinfo{'sections'}{$i}{'inst'};
                         $env{'form.secnum_'.$i} = $sec;                          $env{'form.secnum_'.$i} = $sec;
                           $env{'form.sec_'.$i} = '1';
                         if (!grep(/^\Q$sec\E$/,@currsec)) {                          if (!grep(/^\Q$sec\E$/,@currsec)) {
                             push(@currsec,$sec);                              push(@currsec,$sec);
                         }                          }
Line 2360  sub retrieve_settings { Line 2372  sub retrieve_settings {
                     }                      }
                 }                  }
             }              }
             if (ref($reqinfo{'crosslistings'}) eq 'HASH') {              if (ref($reqinfo{'crosslists'}) eq 'HASH') {
                 foreach my $i (sort(keys(%{$reqinfo{'crosslistings'}}))) {                  foreach my $i (sort(keys(%{$reqinfo{'crosslists'}}))) {
                     if (ref($reqinfo{'crosslistings'}{$i}) eq 'HASH') {                      if (ref($reqinfo{'crosslists'}{$i}) eq 'HASH') {
                         $env{'form.crosslist_'.$i.'_lcsec'} = $reqinfo{'crosslistings'}{$i}{'loncapa'};                          $env{'form.crosslist_'.$i} = '1';
                         my $xlistsec = $reqinfo{'crosslistings'}{$i}{'instsec'};                          $env{'form.crosslist_'.$i.'_instsec'} = $reqinfo{'crosslists'}{$i}{'instsec'};
                         my %crscode = (                          $env{'form.crosslist_'.$i.'_lcsec'} = $reqinfo{'crosslists'}{$i}{'loncapa'};
                                         $i => $reqinfo{'crosslistings'}{$i}{'instcode'},                          if ($reqinfo{'crosslists'}{$i}{'instcode'} ne '') {
                                       );                              my $key = $cnum.$i; 
                         &extract_instcode($dom,'crosslist',\%crscode,$i,$xlistsec);                              my $crscode = {
                                                 $key => $reqinfo{'crosslists'}{$i}{'instcode'},
                                             };
                               &extract_instcode($dom,'crosslist',$crscode,$key,$i);
                           }
                     }                      }
                 }                  }
             }              }
Line 2440  sub get_request_settings { Line 2456  sub get_request_settings {
 }  }
   
 sub extract_instcode {  sub extract_instcode {
     my ($cdom,$element,$crscodehashref,$counter,$xlistsec) = @_;      my ($cdom,$element,$crscode,$crskey,$counter) = @_;
     my (%codes,@codetitles,%cat_titles,%cat_order);      my (%codes,@codetitles,%cat_titles,%cat_order);
     if (ref($crscodehashref) eq 'HASH') {      if (&Apache::lonnet::auto_instcode_format('requests',$cdom,$crscode,\%codes,
         if (&Apache::lonnet::auto_instcode_format('requests',$cdom,$crscodehashref,                                                \@codetitles,\%cat_titles,
                        \%codes,\@codetitles,\%cat_titles,\%cat_order) eq 'ok') {                                                \%cat_order) eq 'ok') {
           if (ref($codes{$crskey}) eq 'HASH') {
             if (@codetitles > 0) {              if (@codetitles > 0) {
                 my $sel = $element;                  my $sel = $element;
                 if ($element eq 'crosslist') {                  if ($element eq 'crosslist') {
                     $sel .= '_'.$counter;                      $sel .= '_'.$counter;
                 }                  }
                 my $lastitem = pop(@codetitles);  
                 foreach my $title (@codetitles) {                  foreach my $title (@codetitles) {
                     if (ref($cat_order{$title}) eq 'ARRAY') {                      $env{'form.'.$sel.'_'.$title} = $codes{$crskey}{$title};
                         if (@{$cat_order{$title}} > 0) {  
                             $env{'form.'.$sel.'_'.$title} = $cat_order{$title}[0];  
                         }  
                     }  
                 }  
                 if ($element eq 'crosslist') {   
                     $env{'form.'.$sel.'_'.$lastitem} = $xlistsec;   
                 }                  }
             }              }
         }          }

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


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