Diff for /loncom/homework/grades.pm between versions 1.662 and 1.665

version 1.662, 2011/10/17 12:41:34 version 1.665, 2011/11/30 23:24:49
Line 6226  sub scantron_warning_screen { Line 6226  sub scantron_warning_screen {
     '<tr><td><b>'.&mt('List of CODES to validate against:').'</b></td><td><tt>'.      '<tr><td><b>'.&mt('List of CODES to validate against:').'</b></td><td><tt>'.
     $env{'form.scantron_CODElist'}.'</tt></td></tr>';      $env{'form.scantron_CODElist'}.'</tt></td></tr>';
     }      }
       my $lastbubblepoints;
       if ($env{'form.scantron_lastbubblepoints'} ne '') {
           $lastbubblepoints =
               '<tr><td><b>'.&mt('Hand-graded items: points from last bubble in row').'</b></td><td><tt>'.
               $env{'form.scantron_lastbubblepoints'}.'</tt></td></tr>';
       }
     return ('      return ('
 <p>  <p>
 <span class="LC_warning">  <span class="LC_warning">
Line 6234  sub scantron_warning_screen { Line 6240  sub scantron_warning_screen {
 <table>  <table>
 <tr><td><b>'.&mt('Sequence to be Graded:').'</b></td><td>'.$title.'</td></tr>  <tr><td><b>'.&mt('Sequence to be Graded:').'</b></td><td>'.$title.'</td></tr>
 <tr><td><b>'.&mt('Data File that will be used:').'</b></td><td><tt>'.$env{'form.scantron_selectfile'}.'</tt></td></tr>  <tr><td><b>'.&mt('Data File that will be used:').'</b></td><td><tt>'.$env{'form.scantron_selectfile'}.'</tt></td></tr>
 '.$CODElist.'  '.$CODElist.$lastbubblepoints.'
 </table>  </table>
 <p> '.&mt('If this information is correct, please click on \'[_1]\'.',&mt($button_text)).'<br />  <p> '.&mt('If this information is correct, please click on \'[_1]\'.',&mt($button_text)).'<br />
 '.&mt('If something is incorrect, please return to [_1]Grade/Manage/Review Bubblesheets[_2] to start over.','<a href="/adm/grades?symb='.$symb.'&command=scantron_selectphase" class="LC_info">','</a>').'</p>  '.&mt('If something is incorrect, please return to [_1]Grade/Manage/Review Bubblesheets[_2] to start over.','<a href="/adm/grades?symb='.$symb.'&command=scantron_selectphase" class="LC_info">','</a>').'</p>
Line 6272  sub scantron_do_warning { Line 6278  sub scantron_do_warning {
  }    } 
     } else {      } else {
  my $warning=&scantron_warning_screen('Grading: Validate Records',$symb);   my $warning=&scantron_warning_screen('Grading: Validate Records',$symb);
           my $bubbledbyhand=&hand_bubble_option();
  $r->print('   $r->print('
 '.$warning.'  '.$warning.$bubbledbyhand.'
 <input type="submit" name="submit" value="'.&mt('Grading: Validate Records').'" />  <input type="submit" name="submit" value="'.&mt('Grading: Validate Records').'" />
 <input type="hidden" name="command" value="scantron_validate" />  <input type="hidden" name="command" value="scantron_validate" />
 ');  ');
Line 6369  sub scantron_validate_file { Line 6376  sub scantron_validate_file {
         return '';          return '';
     }      }
     my $result=&scantron_form_start($max_bubble).$default_form_data;      my $result=&scantron_form_start($max_bubble).$default_form_data;
       if ($env{'form.scantron_lastbubblepoints'} ne '') {
           $result .= '<input type="hidden" name="scantron_lastbubblepoints" value="'.$env{'form.scantron_lastbubblepoints'}.'" />';
       }
     $r->print($result);      $r->print($result);
           
     my @validate_phases=( 'sequence',      my @validate_phases=( 'sequence',
Line 6899  sub scantron_get_correction { Line 6909  sub scantron_get_correction {
        .&mt('The ID on the form is [_1]',         .&mt('The ID on the form is [_1]',
             "<tt>$$scan_record{'scantron.ID'}</tt>")              "<tt>$$scan_record{'scantron.ID'}</tt>")
        .'<br />'         .'<br />'
        .&mt('The name on the paper is [_2], [_3]',         .&mt('The name on the paper is [_1], [_2]',
             $$scan_record{'scantron.LastName'},              $$scan_record{'scantron.LastName'},
             $$scan_record{'scantron.FirstName'})              $$scan_record{'scantron.FirstName'})
        .'</p>';         .'</p>';
Line 7641  sub scantron_validate_missingbubbles { Line 7651  sub scantron_validate_missingbubbles {
     return (0,$currentphase+1);      return (0,$currentphase+1);
 }  }
   
   sub hand_bubble_option {
       my (undef, undef, $sequence) =
           &Apache::lonnet::decode_symb($env{'form.selectpage'});
       return if ($sequence eq '');
       my $navmap = Apache::lonnavmaps::navmap->new();
       unless (ref($navmap)) {
           return;
       }
       my $needs_hand_bubbles;
       my $map=$navmap->getResourceByUrl($sequence);
       my @resources=$navmap->retrieveResources($map,\&scantron_filter,1,0);
       foreach my $res (@resources) {
           if (ref($res)) {
               if ($res->is_problem()) {
                   my $partlist = $res->parts();
                   foreach my $part (@{ $partlist }) {
                       my @types = $res->responseType($part);
                       if (grep(/^(chem|essay|image|formula|math|string|functionplot)$/,@types)) {
                           $needs_hand_bubbles = 1;
                           last;
                       }
                   }
               }
           }
       }
       if ($needs_hand_bubbles) {
           my %scantron_config=&get_scantron_config($env{'form.scantron_format'});
           my $bubbles_per_row = &bubblesheet_bubbles_per_row(\%scantron_config);
           return &mt('The sequence to be graded contains response types which are handgraded.').'<p>'.
                  &mt('If you have already graded these by bubbling sheets to indicate points awarded, [_1]what point value is assigned to a filled last bubble in each row?','<br />').
                  '<label><input type="radio" name="scantron_lastbubblepoints" value="'.$bubbles_per_row.'" checked="checked" />'.&mt('[quant,_1,point]',$bubbles_per_row).'</label>&nbsp;'.&mt('or').'&nbsp;'.
                  '<label><input type="radio" name="scantron_lastbubblepoints" value="0"/>0 points</label></p>';
       }
       return;
   }
   
 sub scantron_process_students {  sub scantron_process_students {
     my ($r,$symb) = @_;      my ($r,$symb) = @_;
Line 7932  sub grade_student_bubbles { Line 7977  sub grade_student_bubbles {
             if ($bubbles_per_row ne '') {              if ($bubbles_per_row ne '') {
                 $form{'bubbles_per_row'} = $bubbles_per_row;                  $form{'bubbles_per_row'} = $bubbles_per_row;
             }              }
               if ($env{'form.scantron_lastbubblepoints'} ne '') {
                   $form{'scantron_lastbubblepoints'} = $env{'form.scantron_lastbubblepoints'};
               }
             if (ref($parts) eq 'HASH') {              if (ref($parts) eq 'HASH') {
                 if (ref($parts->{$ressymb}) eq 'ARRAY') {                  if (ref($parts->{$ressymb}) eq 'ARRAY') {
                     foreach my $part (@{$parts->{$ressymb}}) {                      foreach my $part (@{$parts->{$ressymb}}) {
Line 9340  sub handler { Line 9388  sub handler {
     }      }
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'});      &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'});
   
   # see what command we need to execute
   
       my @commands=&Apache::loncommon::get_env_multiple('form.command');
       my $command=$commands[0];
   
     &init_perm();      &init_perm();
     if (!$env{'request.course.id'}) {      if (!$env{'request.course.id'}) {
         # Not in a course.          unless ((&Apache::lonnet::allowed('usc',$env{'request.role.domain'})) &&
         $env{'user.error.msg'}="/adm/grades::vgr:0:0:Cannot display grades page outside course context";                  ($command =~ /^scantronupload/)) {
         return HTTP_NOT_ACCEPTABLE;              # Not in a course.
               $env{'user.error.msg'}="/adm/grades::vgr:0:0:Cannot display grades page outside course context";
               return HTTP_NOT_ACCEPTABLE;
           }
     } elsif (!%perm) {      } elsif (!%perm) {
         $request->internal_redirect('/adm/quickgrades');          $request->internal_redirect('/adm/quickgrades');
     }      }
     &Apache::loncommon::content_type($request,'text/html');      &Apache::loncommon::content_type($request,'text/html');
     $request->send_http_header;      $request->send_http_header;
   
   
 # see what command we need to execute  
   
     my @commands=&Apache::loncommon::get_env_multiple('form.command');  
     my $command=$commands[0];  
   
     if ($#commands > 0) {      if ($#commands > 0) {
  &Apache::lonnet::logthis("grades got multiple commands ".join(':',@commands));   &Apache::lonnet::logthis("grades got multiple commands ".join(':',@commands));
     }      }

Removed from v.1.662  
changed lines
  Added in v.1.665


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