Diff for /loncom/homework/grades.pm between versions 1.453 and 1.461

version 1.453, 2007/10/11 21:27:50 version 1.461, 2007/10/17 10:48:20
Line 35  use Apache::loncommon; Line 35  use Apache::loncommon;
 use Apache::lonhtmlcommon;  use Apache::lonhtmlcommon;
 use Apache::lonnavmaps;  use Apache::lonnavmaps;
 use Apache::lonhomework;  use Apache::lonhomework;
   use Apache::lonpickcode;
 use Apache::loncoursedata;  use Apache::loncoursedata;
 use Apache::lonmsg();  use Apache::lonmsg();
 use Apache::Constants qw(:common);  use Apache::Constants qw(:common);
Line 56  my %first_bubble_line = (); # First bubb Line 57  my %first_bubble_line = (); # First bubb
   
   
 sub save_bubble_lines {  sub save_bubble_lines {
     &Apache::lonnet::logthis("Saving bubble_lines...");  
     foreach my $line (keys(%bubble_lines_per_response)) {      foreach my $line (keys(%bubble_lines_per_response)) {
  &Apache::lonnet::logthis("Saving form.scantron.bubblelines.$line value: $bubble_lines_per_response{$line}");  
  $env{"form.scantron.bubblelines.$line"}  = $bubble_lines_per_response{$line};   $env{"form.scantron.bubblelines.$line"}  = $bubble_lines_per_response{$line};
  $env{"form.scantron.first_bubble_line.$line"} =   $env{"form.scantron.first_bubble_line.$line"} =
     $first_bubble_line{$line};      $first_bubble_line{$line};
Line 71  sub restore_bubble_lines { Line 70  sub restore_bubble_lines {
     %bubble_lines_per_response = ();      %bubble_lines_per_response = ();
     while ($env{"form.scantron.bubblelines.$line"}) {      while ($env{"form.scantron.bubblelines.$line"}) {
  my $value = $env{"form.scantron.bubblelines.$line"};   my $value = $env{"form.scantron.bubblelines.$line"};
  &Apache::lonnet::logthis("Restoring form.scantron.bubblelines.$line value: $value");  
  $bubble_lines_per_response{$line} = $value;   $bubble_lines_per_response{$line} = $value;
  $first_bubble_line{$line}  =   $first_bubble_line{$line}  =
     $env{"form.scantron.first_bubble_line.$line"};      $env{"form.scantron.first_bubble_line.$line"};
Line 86  sub restore_bubble_lines { Line 84  sub restore_bubble_lines {
 sub get_response_bubbles {  sub get_response_bubbles {
     my ($parsed_line, $response)  = @_;      my ($parsed_line, $response)  = @_;
   
     my $bubble_line = $first_bubble_line{$response};  
     my $bubble_lines= $bubble_lines_per_response{$response};      my $bubble_line = $first_bubble_line{$response-1} +1;
       my $bubble_lines= $bubble_lines_per_response{$response-1};
       
     my $selected = "";      my $selected = "";
   
     for (my $bline = 0; $bline < $bubble_lines; $bline++) {      for (my $bline = 0; $bline < $bubble_lines; $bline++) {
  $selected .= $$parsed_line{"scantron.$bubble_line.answer"};   $selected .= $$parsed_line{"scantron.$bubble_line.answer"}.":";
  $bubble_line++;   $bubble_line++;
     }      }
     return $selected;      return $selected;
Line 529  sub getclasslist { Line 529  sub getclasslist {
  my @stu_groups = split(/,/,$group);   my @stu_groups = split(/,/,$group);
  if (@getgroup) {   if (@getgroup) {
     my $exclude = 1;      my $exclude = 1;
     foreach my $grp(@getgroup) {      foreach my $grp (@getgroup) {
         foreach my $stu_group(@stu_groups) {          foreach my $stu_group (@stu_groups) {
             if ($stu_group eq $grp) {              if ($stu_group eq $grp) {
                 $exclude = 0;                  $exclude = 0;
                }                  } 
Line 4893  SCANTRONFORM Line 4893  SCANTRONFORM
     </tr>      </tr>
 SCANTRONFORM  SCANTRONFORM
   
     $r->print(<<SCANTRONFORM);      $r->print('<tr><td bgcolor="#777777">');
   </table>      &Apache::lonpickcode::code_list($r,2);
 $grading_menu_button      $r->print('</td></tr></table>');
 SCANTRONFORM      $r->print($grading_menu_button);
   
     return      return
 }  }
   
Line 5269  sub scantron_parse_scanline { Line 5268  sub scantron_parse_scanline {
  || (&occurence_count($currentquest, "[A-Z]") > 1)) {   || (&occurence_count($currentquest, "[A-Z]") > 1)) {
  push(@{$record{'scantron.doubleerror'}},$questnum);   push(@{$record{'scantron.doubleerror'}},$questnum);
  for (my $ans = 0; $ans < $answers_needed; $ans++) {    for (my $ans = 0; $ans < $answers_needed; $ans++) { 
     $record{"scantron.$ansnum.answer"}='';      my $bubble = substr($currentquest, $ans, 1);
       if ($bubble =~ /[A-Z]/ ) {
    $record{"scantron.$ansnum.answer"} = $bubble;
       } else {
    $record{"scantron.$ansnum.answer"}='';
       }
     $ansnum++;      $ansnum++;
  }   }
   
Line 5304  sub scantron_parse_scanline { Line 5308  sub scantron_parse_scanline {
  || (&occurence_count($currentquest, '\d') > 1)) {   || (&occurence_count($currentquest, '\d') > 1)) {
  push(@{$record{'scantron.doubleerror'}},$questnum);   push(@{$record{'scantron.doubleerror'}},$questnum);
  for (my $ans = 0; $ans < $answers_needed; $ans++) {   for (my $ans = 0; $ans < $answers_needed; $ans++) {
     $record{"scantron.$ansnum.answer"}='';      my $bubble = substr($currentquest, $ans, 1);
       if ($bubble =~ /\d/) {
    $record{"scantron.$ansnum.answer"} = $alphabet[$bubble];
       } else {
    $record{"scantron.$ansnum.answer"}=' ';
       }
     $ansnum++;      $ansnum++;
  }   }
   
Line 5351  sub scantron_parse_scanline { Line 5360  sub scantron_parse_scanline {
  }   }
     } elsif (scalar(@array) lt 2) {      } elsif (scalar(@array) lt 2) {
   
  my $location      = [length($array[0])];   my $location      = length($array[0]);
  my $line_num      = $location / $$scantron_config{'Qlength'};   my $line_num      = $location / $$scantron_config{'Qlength'};
  my $bubble        = $alphabet[$location % $$scantron_config{'Qlength'}];   my $bubble        = $alphabet[$location % $$scantron_config{'Qlength'}];
   
Line 5747  SCANTRONFORM Line 5756  SCANTRONFORM
   
   my $line = 0;    my $line = 0;
     while (defined($env{"form.scantron.bubblelines.$line"})) {      while (defined($env{"form.scantron.bubblelines.$line"})) {
  &Apache::lonnet::logthis("Saving chunk for $line");  
        my $chunk =         my $chunk =
    '<input type="hidden" name="scantron.bubblelines.'.$line.'" value="'.$env{"form.scantron.bubblelines.$line"}.'" />'."\n";     '<input type="hidden" name="scantron.bubblelines.'.$line.'" value="'.$env{"form.scantron.bubblelines.$line"}.'" />'."\n";
        $chunk .=         $chunk .=
Line 5813  sub scantron_validate_file { Line 5821  sub scantron_validate_file {
     }      }
     my $currentphase=$env{'form.validatepass'};      my $currentphase=$env{'form.validatepass'};
   
     &Apache::lonnet::logthis("Phase: $currentphase");  
   
     my $stop=0;      my $stop=0;
     while (!$stop && $currentphase < scalar(@validate_phases)) {      while (!$stop && $currentphase < scalar(@validate_phases)) {
Line 6325  sub scantron_validate_ID { Line 6332  sub scantron_validate_ID {
 sub scantron_get_correction {  sub scantron_get_correction {
     my ($r,$i,$scan_record,$scan_config,$line,$error,$arg)=@_;      my ($r,$i,$scan_record,$scan_config,$line,$error,$arg)=@_;
   
 #FIXME in the case of a duplicated ID the previous line, probaly need  #FIXME in the case of a duplicated ID the previous line, probably need
 #to show both the current line and the previous one and allow skipping  #to show both the current line and the previous one and allow skipping
 #the previous one or the current one  #the previous one or the current one
   
Line 6424  ENDSCRIPT Line 6431  ENDSCRIPT
  $r->print($message);   $r->print($message);
  $r->print("<p>Please indicate which bubble should be used for grading</p>");   $r->print("<p>Please indicate which bubble should be used for grading</p>");
  foreach my $question (@{$arg}) {   foreach my $question (@{$arg}) {
   
     my $selected  = &get_response_bubbles($scan_record, $question);      my $selected  = &get_response_bubbles($scan_record, $question);
       my @select_array = split(/:/,$selected);
     &scantron_bubble_selector($r,$scan_config,$question,      &scantron_bubble_selector($r,$scan_config,$question,
       split('',$selected));        @select_array);
  }   }
     } elsif ($error eq 'missingbubble') {      } elsif ($error eq 'missingbubble') {
  $r->print("<p>There have been <b>no</b> bubbles scanned for some question(s)</p>\n");   $r->print("<p>There have been <b>no</b> bubbles scanned for some question(s)</p>\n");
Line 6458  ENDSCRIPT Line 6465  ENDSCRIPT
     $r           - Apache request object      $r           - Apache request object
     $scan_config - hash from &get_scantron_config()      $scan_config - hash from &get_scantron_config()
     $quest       - number of the bubble line to make a corrector for      $quest       - number of the bubble line to make a corrector for
     $selected    - array of letters of previously selected bubbles      $lines       - array of answer lines.
   
 =cut  =cut
   
 sub scantron_bubble_selector {  sub scantron_bubble_selector {
     my ($r,$scan_config,$quest,@selected)=@_;      my ($r,$scan_config,$quest,@lines)=@_;
     my $max=$$scan_config{'Qlength'};      my $max=$$scan_config{'Qlength'};
   
   
     my $scmode=$$scan_config{'Qon'};      my $scmode=$$scan_config{'Qon'};
   
       my $bubble_length = scalar(@lines);
   
   
     if ($scmode eq 'number' || $scmode eq 'letter') { $max=10; }           if ($scmode eq 'number' || $scmode eq 'letter') { $max=10; }     
   
     my $response = $quest-1;      my $response = $quest-1;
     my $lines = $bubble_lines_per_response{$response};      my $lines = $bubble_lines_per_response{$response};
     &Apache::lonnet::logthis("Question $quest, lines: $lines");  
   
     my $total_lines = $lines*2;      my $total_lines = $lines*2;
     my @alphabet=('A'..'Z');      my @alphabet=('A'..'Z');
Line 6483  sub scantron_bubble_selector { Line 6492  sub scantron_bubble_selector {
  if ($l != 0) {   if ($l != 0) {
     $r->print('<tr>');      $r->print('<tr>');
  }   }
   
  # FIXME:  This loop probably has to be considerably more clever for  
  #  multiline bubbles: User can multibubble by having bubbles in  
  #  several lines.  User can skip lines legitimately etc. etc.  
   
  for (my $i=0;$i<$max;$i++) {   for (my $i=0;$i<$max;$i++) {
       my @selected = split(//,$lines[$l]);
     $r->print("\n".'<td align="center">');      $r->print("\n".'<td align="center">');
     if ($selected[0] eq $alphabet[$i]) {       if ($selected[0] eq $alphabet[$i]) { 
  $r->print('X');    $r->print('X'); 
Line 6737  sub scantron_validate_doublebubble { Line 6742  sub scantron_validate_doublebubble {
 =cut  =cut
   
 sub scantron_get_maxbubble {      sub scantron_get_maxbubble {    
     &Apache::lonnet::logthis("get_max_bubble");  
     if (defined($env{'form.scantron_maxbubble'}) &&      if (defined($env{'form.scantron_maxbubble'}) &&
  $env{'form.scantron_maxbubble'}) {   $env{'form.scantron_maxbubble'}) {
  &Apache::lonnet::logthis("cached");  
  &restore_bubble_lines();   &restore_bubble_lines();
  return $env{'form.scantron_maxbubble'};   return $env{'form.scantron_maxbubble'};
     }      }
     &Apache::lonnet::logthis("computing");  
   
     my (undef, undef, $sequence) =      my (undef, undef, $sequence) =
  &Apache::lonnet::decode_symb($env{'form.selectpage'});   &Apache::lonnet::decode_symb($env{'form.selectpage'});
Line 6782  sub scantron_get_maxbubble { Line 6784  sub scantron_get_maxbubble {
   
   
  foreach my $part_id (@{$analysis{'parts'}}) {   foreach my $part_id (@{$analysis{'parts'}}) {
     my ($trash, $part) = split(/\./, $part_id);  
   
     my $lines = $analysis{"$part_id.bubble_lines"}[0];  
       my $lines = $analysis{"$part_id.bubble_lines"};;
   
     # TODO - make this a persistent hash not an array.      # TODO - make this a persistent hash not an array.
   
Line 7223  sub grading_menu { Line 7225  sub grading_menu {
     $fields{'command'} = 'scantron_selectphase';      $fields{'command'} = 'scantron_selectphase';
     $url = &Apache::lonhtmlcommon::build_url('grades/',\%fields);      $url = &Apache::lonhtmlcommon::build_url('grades/',\%fields);
     push (@menu, { url => $url,      push (@menu, { url => $url,
                    name => &mt('Grade Scantron Forms'),                     name => &mt('Grade/Manage Scantron Forms'),
                    short_description =>                      short_description => 
             &mt('')});              &mt('')});
     $fields{'command'} = 'verify';      $fields{'command'} = 'verify';
     $url = &Apache::lonhtmlcommon::build_url('grades/',\%fields);      $url = &Apache::lonhtmlcommon::build_url('grades/',\%fields);
     push (@menu, { url => "",      push (@menu, { url => "",
                    jscript => ' onClick="javascript:checkChoice2(document.forms.gradingMenu,\'5\',\'verify\')" ',  
                    name => &mt('Verify Receipt'),                     name => &mt('Verify Receipt'),
                    short_description =>                      short_description => 
             &mt('')});              &mt('')});
     $fields{'command'} = 'manage';  
     $url = &Apache::lonhtmlcommon::build_url('/adm/helper/resettimes.helper',\%fields);  
     push (@menu, { url => $url,  
                    name => &mt('Manage Access Times'),  
                    short_description =>   
             &mt('')});  
     $fields{'command'} = 'view';  
     $url = &Apache::lonhtmlcommon::build_url('/adm/pickcode',\%fields);  
     push (@menu, { url => $url,  
                    name => &mt('View Saved CODEs'),  
                    short_description =>   
             &mt('')});  
   
     #      #
     # Create the menu      # Create the menu
     my $Str;      my $Str;
Line 7267  sub grading_menu { Line 7255  sub grading_menu {
                 $menudata->{'url'}.'" >'.                  $menudata->{'url'}.'" >'.
                 $menudata->{'name'}."</a></h3>\n";                  $menudata->{'name'}."</a></h3>\n";
         } else {          } else {
             $Str .='    <h3><a '.              $Str .='    <h3><input type="button" value="Verify Receipt" '.
                 $menudata->{'jscript'}.                  $menudata->{'jscript'}.
                 ' href="javascript:checkChoice2(document.forms.gradingMenu,\'5\',\'verify\')" >'.                  ' onClick="javascript:checkChoice(document.forms.gradingMenu,\'5\',\'verify\')" '.
                 $menudata->{'name'}."</a></h3>\n";                  ' /></h3>';
             $Str .= ('&nbsp;'x8).              $Str .= ('&nbsp;'x8).
                     ' receipt: '.&Apache::lonnet::recprefix($env{'request.course.id'}).                      ' receipt: '.&Apache::lonnet::recprefix($env{'request.course.id'}).
                     '-<input type="text" name="receipt" size="4" onChange="javascript:checkReceiptNo(this.form,\'OK\')" />';                      '-<input type="text" name="receipt" size="4" onChange="javascript:checkReceiptNo(this.form,\'OK\')" />';
Line 7291  sub grading_menu { Line 7279  sub grading_menu {
     cmdsave = 'submission';      cmdsave = 'submission';
  }   }
  formname.command.value = cmd;   formname.command.value = cmd;
  formname.saveState.value = "saveCmd="+cmdsave+":saveSec="+pullDownSelection(formname.section)+  
     ":saveSub="+pullDownSelection(formname.submitonly)+":saveStatus="+pullDownSelection(formname.Status);  
  if (val < 5) formname.submit();   if (val < 5) formname.submit();
  if (val == 5) {   if (val == 5) {
     if (!checkReceiptNo(formname,'notOK')) { return false;}      if (!checkReceiptNo(formname,'notOK')) { 
     formname.submit();          return false;
       } else {
           formname.submit();
       }
  }   }
  if (val < 7) formname.submit();  
     }  
     function checkChoice2(formname,val,cmdx) {  
  if (val <= 2) {  
     var cmd = radioSelection(formname.radioChoice);  
     var cmdsave = cmd;  
  } else {  
     cmd = cmdx;  
     cmdsave = 'submission';  
  }  
  formname.command.value = cmd;  
  if (val < 5) formname.submit();  
  if (val == 5) {  
     if (!checkReceiptNo(formname,'notOK')) { return false;}  
     formname.submit();  
  }  
  if (val < 7) formname.submit();  
     }      }
   
     function checkReceiptNo(formname,nospace) {      function checkReceiptNo(formname,nospace) {
Line 7333  sub grading_menu { Line 7305  sub grading_menu {
 </script>  </script>
 GRADINGMENUJS  GRADINGMENUJS
     &commonJSfunctions($request);      &commonJSfunctions($request);
     my $result='<h3>&nbsp;<span class="LC_info">Manual Grading/View Submission</span></h3>';  
     $result.=$table;  
     my (undef,$sections) = &getclasslist('all','0');  
     my $savedState = &savedState();  
     my $saveCmd = ($$savedState{'saveCmd'} eq '' ? 'submission' : $$savedState{'saveCmd'});  
     my $saveSec = ($$savedState{'saveSec'} eq '' ? 'all' : $$savedState{'saveSec'});  
     my $saveSub = ($$savedState{'saveSub'} eq '' ? 'all' : $$savedState{'saveSub'});  
     my $saveStatus = ($$savedState{'saveStatus'} eq '' ? 'Active' : $$savedState{'saveStatus'});  
   
     $result.='<form action="/adm/grades" method="post" name="gradingMenu">'."\n".  
  '<input type="hidden" name="symb"        value="'.&Apache::lonenc::check_encrypt($symb).'" />'."\n".  
  '<input type="hidden" name="handgrade"   value="'.$hdgrade.'" />'."\n".  
  '<input type="hidden" name="probTitle"   value="'.$probTitle.'" ue="" />'."\n".  
  '<input type="hidden" name="saveState"   value="" />'."\n".  
  '<input type="hidden" name="gradingMenu" value="1" />'."\n".  
  '<input type="hidden" name="showgrading" value="yes" />'."\n";  
   
     $result.='<table width="100%" border="0"><tr><td bgcolor=#777777>'."\n".  
  '<table width="100%" border="0"><tr bgcolor="#e6ffff"><td colspan="2">'."\n".  
  '&nbsp;<b>Select a Grading/Viewing Option</b></td></tr>'."\n".  
  '<tr bgcolor="#ffffe6" valign="top"><td>'."\n";  
   
     $result.='<table width="100%" border="0">';  
     $result.='<tr bgcolor="#ffffe6" valign="top">'."\n";  
     $result.='<td><b>'.&mt('Sections').'</b></td>';  
 #    $result.='<td>Groups</td>';  
     $result.='<td><b>'.&mt('Access Status').'</td>'."\n";  
     $result.='</tr>';  
     $result.='<tr bgcolor="#ffffe6" valign="top"><td>'."\n".  
  '&nbsp;<select name="section" multiple="multiple" size="3">'."\n";  
     if (ref($sections)) {  
  foreach (sort (@$sections)) {  
     $result.='<option value="'.$_.'" '.  
  ($saveSec eq $_ ? 'selected="selected"':'').'>'.$_.'</option>'."\n";  
  }  
     }  
     $result.= '<option value="all" '.($saveSec eq 'all' ? 'selected="selected"' : ''). '>all</option></select> &nbsp; ';  
     return $Str;          return $Str;    
 }  }
   
Line 7447  GRADINGMENUJS Line 7382  GRADINGMENUJS
     $result.='<td><b>'.&mt('Sections').'</b></td>';      $result.='<td><b>'.&mt('Sections').'</b></td>';
     $result.='<td><b>'.&mt('Groups').'</b></td>';      $result.='<td><b>'.&mt('Groups').'</b></td>';
     $result.='<td><b>'.&mt('Access Status').'</td>'."\n";      $result.='<td><b>'.&mt('Access Status').'</td>'."\n";
       $result.='<td><b>'.&mt('Submission Status').'</td>'."\n";
     $result.='</tr>';      $result.='</tr>';
     $result.='<tr bgcolor="#ffffe6" valign="top"><td>'."\n".      $result.='<tr bgcolor="#ffffe6" valign="top"><td>'."\n".
  '&nbsp;<select name="section" multiple="multiple" size="3">'."\n";   '&nbsp;<select name="section" multiple="multiple" size="3">'."\n";
Line 7462  GRADINGMENUJS Line 7398  GRADINGMENUJS
     $result.='</td><td>'."\n";      $result.='</td><td>'."\n";
     $result.=&Apache::lonhtmlcommon::StatusOptions($saveStatus,undef,3,undef,'mult');      $result.=&Apache::lonhtmlcommon::StatusOptions($saveStatus,undef,3,undef,'mult');
   
     $result.='</td></tr>';      $result.='</td>';
       $result.='<td><select name="submitonly" size="3">'.
     $result.='<tr bgcolor="#ffffe6"valign="top"><td colspan="3"><label>'.  
  '<input type="radio" name="radioChoice" value="submission" '.  
  ($saveCmd eq 'submission' ? 'checked="checked"' : '').' /> '.'<b>'.&mt('Current Resource').':</b> '.&mt('For one or more students').  
  '</label> <select name="submitonly">'.  
  '<option value="yes" '.   '<option value="yes" '.
  ($saveSub eq 'yes' ? 'selected="selected"' : '').'>'.&mt('with submissions').'</option>'.   ($saveSub eq 'yes' ? 'selected="selected"' : '').'>'.&mt('with submissions').'</option>'.
  '<option value="queued" '.   '<option value="queued" '.
Line 7477  GRADINGMENUJS Line 7409  GRADINGMENUJS
  '<option value="incorrect" '.   '<option value="incorrect" '.
  ($saveSub eq 'incorrect' ? 'selected="selected"' : '').'>'.&mt('with incorrect submissions').'</option>'.   ($saveSub eq 'incorrect' ? 'selected="selected"' : '').'>'.&mt('with incorrect submissions').'</option>'.
  '<option value="all" '.   '<option value="all" '.
  ($saveSub eq 'all' ? 'selected="selected"' : '').'>'.&mt('with any status').'</option></select></td></tr>'."\n";   ($saveSub eq 'all' ? 'selected="selected"' : '').'>'.&mt('with any status').'</option></select></td></tr>';
   
     $result.='<tr bgcolor="#ffffe6"valign="top"><td colspan="2">'.      $result.='<tr bgcolor="#ffffe6"valign="top"><td colspan="3"><label>'.
    '<input type="radio" name="radioChoice" value="submission" '.
    ($saveCmd eq 'submission' ? 'checked="checked"' : '').' /> '.'<b>'.&mt('Current Resource').':</b> '.&mt('For one or more students').
    '</label> </td></tr>'."\n";
   
       $result.='<tr bgcolor="#ffffe6"valign="top"><td colspan="3">'.
  '<label><input type="radio" name="radioChoice" value="viewgrades" '.   '<label><input type="radio" name="radioChoice" value="viewgrades" '.
  ($saveCmd eq 'viewgrades' ? 'checked="checked"' : '').' /> '.   ($saveCmd eq 'viewgrades' ? 'checked="checked"' : '').' /> '.
  '<b>Current Resource:</b> For all students in selected section or course</label></td></tr>'."\n";   '<b>Current Resource:</b> For all students in selected section or course</label></td></tr>'."\n";
   
     $result.='<tr bgcolor="#ffffe6" valign="top"><td colspan="2">'.      $result.='<tr bgcolor="#ffffe6"><td colspan="3"><br />'.
  '<label><input type="radio" name="radioChoice" value="pickStudentPage" '.   '<input type="button" onClick="javascript:checkChoice(this.form,\'2\');" value="Next->" />'.
    '</td></tr>'."\n";
   
   
       $result.='<tr bgcolor="#ffffe6" valign="top"><td colspan="3">'.
    '<br /><label><input type="radio" name="radioChoice" value="pickStudentPage" '.
  ($saveCmd eq 'pickStudentPage' ? 'checked="checked"' : '').' /> '.   ($saveCmd eq 'pickStudentPage' ? 'checked="checked"' : '').' /> '.
  'The <b>complete</b> set/page/sequence: For one student</label></td></tr>'."\n";   'The <b>complete</b> set/page/sequence/folder: For one student</label></td></tr>'."\n";
   
     $result.='<tr bgcolor="#ffffe6"><td colspan="2"><br />'.      $result.='<tr bgcolor="#ffffe6"><td colspan="3"><br />'.
  '<input type="button" onClick="javascript:checkChoice(this.form,\'2\');" value="Next->" />'.   '<input type="button" onClick="javascript:checkChoice(this.form,\'2\');" value="Next->" />'.
  '</td></tr></table>'."\n";   '</td></tr></table>'."\n";
   
Line 8036  ENDHEADER Line 7978  ENDHEADER
   
 sub handler {  sub handler {
     my $request=$_[0];      my $request=$_[0];
   
     &reset_caches();      &reset_caches();
     if ($env{'browser.mathml'}) {      if ($env{'browser.mathml'}) {
  &Apache::loncommon::content_type($request,'text/xml');   &Apache::loncommon::content_type($request,'text/xml');
Line 8132  sub handler { Line 8073  sub handler {
  } elsif ($command eq 'csvuploadassign' && $perm{'mgr'} ) {   } elsif ($command eq 'csvuploadassign' && $perm{'mgr'} ) {
     $request->print(&csvuploadassign($request));      $request->print(&csvuploadassign($request));
  } elsif ($command eq 'scantron_selectphase' && $perm{'mgr'}) {   } elsif ($command eq 'scantron_selectphase' && $perm{'mgr'}) {
     &Apache::lonnet::logthis("Selecting pyhase");  
     $request->print(&scantron_selectphase($request));      $request->print(&scantron_selectphase($request));
   } elsif ($command eq 'scantron_warning' && $perm{'mgr'}) {    } elsif ($command eq 'scantron_warning' && $perm{'mgr'}) {
      $request->print(&scantron_do_warning($request));       $request->print(&scantron_do_warning($request));

Removed from v.1.453  
changed lines
  Added in v.1.461


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