Diff for /loncom/homework/grades.pm between versions 1.269 and 1.273

version 1.269, 2005/06/03 18:23:19 version 1.273, 2005/06/04 19:05:31
Line 1352  sub gradeBox { Line 1352  sub gradeBox {
     my $result='<input type="hidden" name="WGT'.$counter.'_'.$partid.'" value="'.$wgt.'" />'."\n";      my $result='<input type="hidden" name="WGT'.$counter.'_'.$partid.'" value="'.$wgt.'" />'."\n";
   
     my $display_part=&get_display_part($partid,undef,$symb);      my $display_part=&get_display_part($partid,undef,$symb);
     my @partids = ("$partid");  
     my %last_resets = ();      my %last_resets = &get_last_resets($symb,$env{'request.course.id'},
     &get_last_resets($symb,$env{'request.course.id'},\%last_resets,\@partids);         [$partid]);
     my $aggtries;      my $aggtries = $$record{'resource.'.$partid.'.tries'};
     if ($last_resets{$partid}) {      if ($last_resets{$partid}) {
         $aggtries = &get_num_tries($record,$last_resets{$partid},$partid);          $aggtries = &get_num_tries($record,$last_resets{$partid},$partid);
     } else {  
         $aggtries = $$record{'resource.'.$partid.'.tries'};  
     }      }
   
     $result.='<table border="0"><tr><td>'.      $result.='<table border="0"><tr><td>'.
  '<b>Part: </b>'.$display_part.' <b>Points: </b></td><td>'."\n";   '<b>Part: </b>'.$display_part.' <b>Points: </b></td><td>'."\n";
   
Line 2156  sub saveHandGrade { Line 2155  sub saveHandGrade {
     }      }
     $newrecord{'resource.'.$new_part.'.regrader'}=      $newrecord{'resource.'.$new_part.'.regrader'}=
  "$env{'user.name'}:$env{'user.domain'}";   "$env{'user.name'}:$env{'user.domain'}";
             my @partids = ("$new_part");              my $totaltries = $record{'resource.'.$part.'.tries'};
             my %last_resets = ();  
             &get_last_resets($symb,$env{'request.course.id'},\%last_resets,\@partids);              my %last_resets = &get_last_resets($symb,$env{'request.course.id'},
             my ($totaltries,$aggtries,$solvedstatus);         [$new_part]);
             $totaltries = $record{'resource.'.$part.'.tries'};              my $aggtries =$totaltries;
             if ($last_resets{$new_part}) {              if ($last_resets{$new_part}) {
                 $aggtries = &get_num_tries(\%record,$last_resets{$new_part},$new_part);                  $aggtries = &get_num_tries(\%record,$last_resets{$new_part},
             } else {     $new_part);
                 $aggtries = $totaltries;  
             }              }
             $solvedstatus = $record{'resource.'.$new_part.'.solved'};  
               my $solvedstatus = $record{'resource.'.$new_part.'.solved'};
             if ($aggtries > 0) {              if ($aggtries > 0) {
                 &decrement($symb,$new_part,\%aggregate,$aggtries,$totaltries,$solvedstatus);                  &decrement($symb,$new_part,\%aggregate,$aggtries,$totaltries,$solvedstatus);
                 $aggregateflag = 1;                  $aggregateflag = 1;
Line 2270  sub decrement_aggs { Line 2269  sub decrement_aggs {
   
 # ----------- Determine timestamps for last reset of aggregate totals for parts    # ----------- Determine timestamps for last reset of aggregate totals for parts  
 sub get_last_resets {  sub get_last_resets {
     my ($symb,$courseid,$last_resets,$partids) =@_;      my ($symb,$courseid,$partids) =@_;
       my %last_resets;
     my $cdom = $env{'course.'.$courseid.'.domain'};      my $cdom = $env{'course.'.$courseid.'.domain'};
     my $cname = $env{'course.'.$courseid.'.num'};      my $cname = $env{'course.'.$courseid.'.num'};
     my %resethash = &Apache::lonnet::restore($symb,'nohist_resourcetracker',$cdom,$cname);      my @keys;
     if ($resethash{'version'}) {      foreach my $part (@{$partids}) {
         foreach my $part (@{$partids}) {   push(@keys,"$symb\0$part\0resettime");
             $$last_resets{$part} = '';      }
             for (my $version=$resethash{'version'};$version>=1;$version--) {      my %results=&Apache::lonnet::get('nohist_resourcetracker',\@keys,
                 if (exists($resethash{$version.':'.$part."\0".'prev_attempts'})) {       $cdom,$cname);
                     $$last_resets{$part} = $resethash{$version.':timestamp'};      foreach my $part (@{$partids}) {
                     last;   $last_resets{$part}=$results{"$symb\0$part\0resettime"};
                 }  
             }  
         }  
     }      }
     return;      return %last_resets;
 }  }
   
 # ----------- Handles creating versions for portfolio files as answers  # ----------- Handles creating versions for portfolio files as answers
Line 2630  sub viewgrades { Line 2627  sub viewgrades {
     }      }
     $result.='</tr>';      $result.='</tr>';
   
     # retrieve last reset information      my %last_resets = 
     my %last_resets = ();   &get_last_resets($symb,$env{'request.course.id'},\@partids);
     &get_last_resets($symb,$env{'request.course.id'},\%last_resets,\@partids);  
   
     #get info for each student      #get info for each student
     #list all the students - with points and grade status      #list all the students - with points and grade status
Line 2675  sub viewstudentgrade { Line 2671  sub viewstudentgrade {
         $result.='<td align="middle">';          $result.='<td align="middle">';
         my ($aggtries,$totaltries);          my ($aggtries,$totaltries);
         unless (exists($aggregates{$part})) {          unless (exists($aggregates{$part})) {
             $totaltries = $record{'resource.'.$part.'.tries'};      $totaltries = $record{'resource.'.$part.'.tries'};
   
       $aggtries = $totaltries;
             if ($$last_resets{$part}) {                if ($$last_resets{$part}) {  
                 $aggtries = &get_num_tries(\%record,$$last_resets{$part},$part);                  $aggtries = &get_num_tries(\%record,$$last_resets{$part},
             } else {     $part);
                 $aggtries = $totaltries;              }
             }   
             $result.='<input type="hidden" name="'.              $result.='<input type="hidden" name="'.
                 'GD_'.$student.'_'.$part.'_aggtries" value="'.$aggtries.'" />'."\n";                  'GD_'.$student.'_'.$part.'_aggtries" value="'.$aggtries.'" />'."\n";
             $result.='<input type="hidden" name="'.              $result.='<input type="hidden" name="'.
Line 3876  sub scantron_CODElist { Line 3873  sub scantron_CODElist {
   
 sub scantron_CODEunique {  sub scantron_CODEunique {
     my $result='<nobr>      my $result='<nobr>
                  <input type="radio" name="scantron_CODEunique"                   <label><input type="radio" name="scantron_CODEunique"
                         value="Yes" checked="on" /> Yes                          value="Yes" checked="on" /> Yes </label>
                 </nobr>                  </nobr>
                 <nobr>                  <nobr>
                  <input type="radio" name="scantron_CODEunique"                   <label><input type="radio" name="scantron_CODEunique"
                         value="No" /> No                          value="No" /> No </label>
                 </nobr>';                  </nobr>';
     return $result;      return $result;
 }  }
Line 3931  sub scantron_selectphase { Line 3928  sub scantron_selectphase {
           <tr bgcolor="#ffffe6">            <tr bgcolor="#ffffe6">
     <td> Options: </td>      <td> Options: </td>
             <td>              <td>
                 <input type="checkbox" name="scantron_options_redo" value="redo_skipped"/> Do only previously skipped records <br />         <label><input type="checkbox" name="scantron_options_redo" value="redo_skipped"/> Do only previously skipped records</label> <br />
                 <input type="checkbox" name="scantron_options_ignore" value="ignore_corrections"/> Remove all exisiting corrections                 <label><input type="checkbox" name="scantron_options_ignore" value="ignore_corrections"/> Remove all exisiting corrections</label>
     </td>      </td>
           </tr>            </tr>
           <tr bgcolor="#ffffe6">            <tr bgcolor="#ffffe6">
Line 4738  sub scantron_get_correction { Line 4735  sub scantron_get_correction {
  $r->print("<p>How should I handle this? <br /> \n");   $r->print("<p>How should I handle this? <br /> \n");
  $r->print("\n<br /> ");   $r->print("\n<br /> ");
  my $i=0;   my $i=0;
  if ($error eq 'incorrectCODE') {   if ($error eq 'incorrectCODE' 
       && $$scan_record{'scantron.CODE'}=~/\S/ ) {
     my ($max,$closest)=&scantron_get_closely_matching_CODEs($arg,$$scan_record{'scantron.CODE'});      my ($max,$closest)=&scantron_get_closely_matching_CODEs($arg,$$scan_record{'scantron.CODE'});
     foreach my $testcode (@{$closest}) {      foreach my $testcode (@{$closest}) {
  my $checked='';   my $checked='';
  if (!$i) { $checked=' checked="on" '; }   if (!$i) { $checked=' checked="on" '; }
  $r->print("<input type='radio' name='scantron_CODE_resolution' value='use_closest_$i' $checked /> Use the similar CODE <b><tt>".$testcode."</tt></b> instead.<input type='hidden' name='scantron_CODE_closest_$i' value='$testcode' />");   $r->print("<label><input type='radio' name='scantron_CODE_resolution' value='use_closest_$i' $checked /> Use the similar CODE <b><tt>".$testcode."</tt></b> instead.</label><input type='hidden' name='scantron_CODE_closest_$i' value='$testcode' />");
  $r->print("\n<br />");   $r->print("\n<br />");
  $i++;   $i++;
     }      }
  }   }
  my $checked; if (!$i) { $checked=' checked="on" '; }   if ($$scan_record{'scantron.CODE'}=~/\S/ ) {
  $r->print("<input type='radio' name='scantron_CODE_resolution' value='use_unfound' $checked /> Use the CODE <b><tt>".$$scan_record{'scantron.CODE'}."</tt></b> that is was on the paper, ignoring the error.");      my $checked; if (!$i) { $checked=' checked="on" '; }
  $r->print("\n<br />");      $r->print("<label><input type='radio' name='scantron_CODE_resolution' value='use_unfound' $checked /> Use the CODE <b><tt>".$$scan_record{'scantron.CODE'}."</tt></b> that is was on the paper, ignoring the error.</label>");
       $r->print("\n<br />");
    }
   
  $r->print(<<ENDSCRIPT);   $r->print(<<ENDSCRIPT);
 <script type="text/javascript">  <script type="text/javascript">
Line 4769  ENDSCRIPT Line 4769  ENDSCRIPT
    "&scantron_CODElist=".&Apache::lonnet::escape($env{'form.scantron_CODElist'}).     "&scantron_CODElist=".&Apache::lonnet::escape($env{'form.scantron_CODElist'}).
    "&curCODE=".&Apache::lonnet::escape($$scan_record{'scantron.CODE'}).     "&curCODE=".&Apache::lonnet::escape($$scan_record{'scantron.CODE'}).
    "&scantron_selectfile=".&Apache::lonnet::escape($env{'form.scantron_selectfile'});     "&scantron_selectfile=".&Apache::lonnet::escape($env{'form.scantron_selectfile'});
  $r->print("<input type='radio' name='scantron_CODE_resolution' value='use_found' /> <a target='_blank' href='$href'>Select</a> a CODE from the list of all CODEs and use it. Selected CODE is <input readonly='true' type='text' size='8' name='scantron_CODE_selectedvalue' onfocus=\"javascript:change_radio('use_found')\" onchange=\"javascript:change_radio('use_found')\" />");   $r->print("<label><input type='radio' name='scantron_CODE_resolution' value='use_found' /> <a target='_blank' href='$href'>Select</a> a CODE from the list of all CODEs and use it.</label> Selected CODE is <input readonly='true' type='text' size='8' name='scantron_CODE_selectedvalue' onfocus=\"javascript:change_radio('use_found')\" onchange=\"javascript:change_radio('use_found')\" />");
  $r->print("\n<br />");   $r->print("\n<br />");
  $r->print("<input type='radio' name='scantron_CODE_resolution' value='use_typed' /> Use <input type='text' size='8' name='scantron_CODE_newvalue' onfocus=\"javascript:change_radio('use_typed')\" onkeypress=\"javascript:change_radio('use_typed')\" /> as the CODE.");   $r->print("<label><input type='radio' name='scantron_CODE_resolution' value='use_typed' /> Use </label><input type='text' size='8' name='scantron_CODE_newvalue' onfocus=\"javascript:change_radio('use_typed')\" onkeypress=\"javascript:change_radio('use_typed')\" /> as the CODE.");
  $r->print("\n<br /><br />");   $r->print("\n<br /><br />");
     } elsif ($error eq 'doublebubble') {      } elsif ($error eq 'doublebubble') {
  $r->print("<p>There have been multiple bubbles scanned for a some question(s)</p>\n");   $r->print("<p>There have been multiple bubbles scanned for a some question(s)</p>\n");
Line 4814  sub scantron_bubble_selector { Line 4814  sub scantron_bubble_selector {
     }      }
     $r->print('<td></td></tr><tr>');      $r->print('<td></td></tr><tr>');
     for (my $i=0;$i<$max;$i++) {      for (my $i=0;$i<$max;$i++) {
  $r->print('<td><input type="radio" name="scantron_correct_Q_'.$quest.   $r->print('<td><label><input type="radio" name="scantron_correct_Q_'.
   '" value="'.$i.'" />'.$alphabet[$i]."</td>");    $quest.'" value="'.$i.'" />'.$alphabet[$i]."</label></td>");
     }      }
     $r->print('<td><input type="radio" name="scantron_correct_Q_'.$quest.      $r->print('<td><label><input type="radio" name="scantron_correct_Q_'.
       '" value="none" /> No bubble </td>');        $quest.'" value="none" /> No bubble </label></td>');
     $r->print('</tr></table>');      $r->print('</tr></table>');
 }  }
   

Removed from v.1.269  
changed lines
  Added in v.1.273


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