Diff for /loncom/homework/grades.pm between versions 1.596.2.12.2.16 and 1.596.2.12.2.17

version 1.596.2.12.2.16, 2013/06/28 22:54:50 version 1.596.2.12.2.17, 2013/06/29 16:27:39
Line 7629  sub questions_to_line_list { Line 7629  sub questions_to_line_list {
             } else {              } else {
                 $first = $first_bubble_line{$responsenum} + 1;                  $first = $first_bubble_line{$responsenum} + 1;
             }              }
             my @subans = split(/,/,$subdivided_bubble_lines{$question-1});              my @subans = split(/,/,$subdivided_bubble_lines{$responsenum});
             my $subcount = 1;              my $subcount = 1;
             while ($subcount<$subquestion) {              while ($subcount<$subquestion) {
                 $first += $subans[$subcount-1];                  $first += $subans[$subcount-1];
Line 7637  sub questions_to_line_list { Line 7637  sub questions_to_line_list {
             }              }
             $count = $subans[$subquestion-1];              $count = $subans[$subquestion-1];
         } else {          } else {
     $first   = $first_bubble_line{$question-1} + 1;              my $responsenum = $question-1;
     $count   = $bubble_lines_per_response{$question-1};              if (($randomorder || $randompick) && (ref($respnumlookup) eq 'HASH')) {
                   $responsenum = $respnumlookup->{$question-1};
                   if (ref($startline) eq 'HASH') {
                       $first = $startline->{$question-1} + 1;
                   }
               } else {
                   $first = $first_bubble_line{$responsenum} + 1;
               }
               $count   = $bubble_lines_per_response{$responsenum};
         }          }
         $last = $first+$count-1;          $last = $first+$count-1;
         push(@lines, ($first..$last));          push(@lines, ($first..$last));
Line 7660  for multi and missing bubble cases). Line 7668  for multi and missing bubble cases).
    $scan_config - The scantron file configuration hash.     $scan_config - The scantron file configuration hash.
    $scan_record - Reference to the hash that has the the parsed scanlines.     $scan_record - Reference to the hash that has the the parsed scanlines.
    $error       - Type of error     $error       - Type of error
      $randomorder - True if randomorder in use.
      $randompick  - True if randompick in use.
      $respnumlookup - Reference to HASH mapping question numbers in bubble lines
                       for current line to question number used for same question
                       in "Master Seqence" (as seen by Course Coordinator).
      $startline   - Reference to hash where key is question number (0 is first)
                     and value is number of first bubble line for current student
                     or code-based randompick and/or randomorder.
   
  Implicit inputs:   Implicit inputs:
    %bubble_lines_per_response   - Starting line numbers for each question.     %bubble_lines_per_response   - Starting line numbers for each question.
Line 8092  sub scantron_get_maxbubble { Line 8108  sub scantron_get_maxbubble {
     foreach my $resource (@resources) {      foreach my $resource (@resources) {
         my $resid = $resource->id();          my $resid = $resource->id();
         my ($analysis,$parts) = &scantron_partids_tograde($resource,$cid,$uname,          my ($analysis,$parts) = &scantron_partids_tograde($resource,$cid,$uname,
                                                           $udom,$bubbles_per_row);                                                            $udom,undef,$bubbles_per_row);
         if ((ref($analysis) eq 'HASH') && (ref($parts) eq 'ARRAY')) {          if ((ref($analysis) eq 'HASH') && (ref($parts) eq 'ARRAY')) {
     foreach my $part_id (@{$parts}) {      foreach my $part_id (@{$parts}) {
                 my $lines;                  my $lines;
Line 8197  sub scantron_validate_missingbubbles { Line 8213  sub scantron_validate_missingbubbles {
     if (ref($map)) {      if (ref($map)) {
         $randomorder = $map->randomorder();          $randomorder = $map->randomorder();
         $randompick = $map->randompick();          $randompick = $map->randompick();
           if ($randomorder || $randompick) {
               $nav_error = &get_master_seq(\@resources,\@master_seq,\%symb_to_resource);
               if ($nav_error) {
                   $r->print(&navmap_errormsg());
                   return(1,$currentphase);
               }
               &graders_resources_pass(\@resources,\%grader_partids_by_symb,
                                       \%grader_randomlists_by_symb,$bubbles_per_row);
           }
     } else {      } else {
         $r->print(&navmap_errormsg());          $r->print(&navmap_errormsg());
         return '';          return(1,$currentphase);
     }  
     my $nav_error;  
     my @resources=$navmap->retrieveResources($map,\&scantron_filter,1,0);  
     if ($randomorder || $randompick) {  
         $nav_error = &get_master_seq(\@resources,\@master_seq,\%symb_to_resource);  
         if ($nav_error) {  
             $r->print(&navmap_errormsg());  
             return '';  
         }  
     }      }
     &graders_resources_pass(\@resources,\%grader_partids_by_symb,  
                             \%grader_randomlists_by_symb,$bubbles_per_row);  
   
     my ($uname,$udom);  
   
     my $max_bubble=&scantron_get_maxbubble(\$nav_error,\%scantron_config);      my $max_bubble=&scantron_get_maxbubble(\$nav_error,\%scantron_config);
     if ($nav_error) {      if ($nav_error) {
Line 8249  sub scantron_validate_missingbubbles { Line 8262  sub scantron_validate_missingbubbles {
                     $first = $first_bubble_line{$responsenum};                      $first = $first_bubble_line{$responsenum};
                 }                  }
                 if (!defined($first)) { next; }                  if (!defined($first)) { next; }
                 my @subans = split(/,/,$subdivided_bubble_lines{$question-1});                  my @subans = split(/,/,$subdivided_bubble_lines{$responsenum});
                 my $subcount = 1;                  my $subcount = 1;
                 while ($subcount<$subquestion) {                  while ($subcount<$subquestion) {
                     $first += $subans[$subcount-1];                      $first += $subans[$subcount-1];
Line 9006  sub checkscantron_results { Line 9019  sub checkscantron_results {
         %grader_randomlists_by_symb,%orderedforcode);          %grader_randomlists_by_symb,%orderedforcode);
     if (ref($map)) {      if (ref($map)) {
         $randomorder=$map->randomorder();          $randomorder=$map->randomorder();
           $randompick=$map->randompick();
     }      }
     my @resources=$navmap->retrieveResources($map,\&scantron_filter,1,0);      my @resources=$navmap->retrieveResources($map,\&scantron_filter,1,0);
     my $nav_error = &get_master_seq(\@resources,\@master_seq,\%symb_to_resource);      my $nav_error = &get_master_seq(\@resources,\@master_seq,\%symb_to_resource);

Removed from v.1.596.2.12.2.16  
changed lines
  Added in v.1.596.2.12.2.17


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