Diff for /loncom/interface/statistics/lonstudentassessment.pm between versions 1.77 and 1.79

version 1.77, 2003/12/08 19:37:07 version 1.79, 2003/12/11 15:48:56
Line 1035  END Line 1035  END
                 &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell                  &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell
                                              ($rows_output,$cols_output-1);                                               ($rows_output,$cols_output-1);
             $seq->{'Excel:endcol'}=$cols_output-1;              $seq->{'Excel:endcol'}=$cols_output-1;
             # Determine cell the score is held in  
             $seq->{'Excel:scorecell'} =   
                 &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell  
                                              ($rows_output,$cols_output);  
             $seq->{'Excel:scorecol'}=$cols_output;  
             $excel_sheet->write($rows_output,$cols_output++,'score');  
             # Create the formula for summing up this sequence              # Create the formula for summing up this sequence
             $seq->{'Excel:sum'}= $excel_sheet->store_formula              $seq->{'Excel:sum'}= $excel_sheet->store_formula
                                         ('=SUM('.$seq->{'Excel:startcell'}.                                          ('=SUM('.$seq->{'Excel:startcell'}.
                                              ':'.$seq->{'Excel:endcell'}.')');                                               ':'.$seq->{'Excel:endcell'}.')');
             #          }
             $total_formula_string.='+'.          # Determine cell the score is held in
                 &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell          $seq->{'Excel:scorecell'} = 
                                         ($rows_output,$cols_output-1);              &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell
             $excel_sheet->write($rows_output,$cols_output++,'maximum');              ($rows_output,$cols_output);
         } elsif ($data eq 'sum and total') {          $seq->{'Excel:scorecol'}=$cols_output;
             $excel_sheet->write($rows_output+1,$cols_output,'score');          if ($data eq 'parts correct total') {
             $total_formula_string.='+'.              $excel_sheet->write($rows_output,$cols_output++,'parts correct');
                 &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell  
                                         ($rows_output+1,$cols_output);  
             $excel_sheet->write($rows_output+1,$cols_output+1,'maximum');  
             $cols_output += 2;  
         } elsif ($data eq 'parts correct total') {  
             $excel_sheet->write($rows_output+1,$cols_output,'parts correct');  
             $total_formula_string.='+'.  
                 &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell  
                                         ($rows_output+1,$cols_output);  
             $excel_sheet->write($rows_output+1,$cols_output+1,'maximum');  
             $cols_output += 2;  
         } else {          } else {
             $cols_output++;              $excel_sheet->write($rows_output,$cols_output++,'score');
         }          }
           #
           $total_formula_string.='+'.
               &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell
               ($rows_output,$cols_output-1);
           $excel_sheet->write($rows_output,$cols_output++,'maximum');
     }      }
     $excel_sheet->write($rows_output,$cols_output,'Grand Total');      $excel_sheet->write($rows_output,$cols_output++,'Grand Total');
     $total_formula = $excel_sheet->store_formula($total_formula_string);      $total_formula = $excel_sheet->store_formula($total_formula_string);
     #      #
     # Bookkeeping      # Bookkeeping
Line 1091  END Line 1079  END
     #      #
     # Add the maximums for each sequence or assessment      # Add the maximums for each sequence or assessment
     my %total_cell_translation;      my %total_cell_translation;
       my $grand_total = 0;
     foreach my $seq (&Apache::lonstatistics::Sequences_with_Assess()) {      foreach my $seq (&Apache::lonstatistics::Sequences_with_Assess()) {
         $total_cell_translation{$seq->{'Excel:scorecell'}} =           $total_cell_translation{$seq->{'Excel:scorecell'}} = 
             &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell              &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell
Line 1120  END Line 1109  END
         if (! ($data eq 'sum only' || $data eq 'parts correct')) {          if (! ($data eq 'sum only' || $data eq 'parts correct')) {
             $excel_sheet->write($rows_output,$cols_output++,'');              $excel_sheet->write($rows_output,$cols_output++,'');
         }          }
         my %replaceCells;          #
         $replaceCells{$seq->{'Excel:startcell'}} =           if ($data eq 'tries' || $data eq 'scores') {
             &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell              my %replaceCells;
                                    ($rows_output,$seq->{'Excel:startcol'});              $replaceCells{$seq->{'Excel:startcell'}} = 
         $replaceCells{$seq->{'Excel:endcell'}} =                   &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell
             &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell                  ($rows_output,$seq->{'Excel:startcol'});
                                    ($rows_output,$seq->{'Excel:endcol'});              $replaceCells{$seq->{'Excel:endcell'}} = 
                   &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell
                   ($rows_output,$seq->{'Excel:endcol'});
               $excel_sheet->repeat_formula($rows_output,$cols_output++,
                                            $seq->{'Excel:sum'},undef,
                                            %replaceCells);
           } else {
               $excel_sheet->write($rows_output,$cols_output++,
                                   $max);
           }
           $grand_total+=$max;
       }
       if ($data eq 'tries' || $data eq 'scores') {
         $excel_sheet->repeat_formula($rows_output,$cols_output++,          $excel_sheet->repeat_formula($rows_output,$cols_output++,
                                      $seq->{'Excel:sum'},undef,                                       $total_formula,undef,
                                      %replaceCells);                                       %total_cell_translation);
       } else {
           $excel_sheet->write($rows_output,$cols_output++,$grand_total);
     }      }
     $excel_sheet->repeat_formula($rows_output,$cols_output++,  
                                  $total_formula,undef,  
                                  %total_cell_translation);  
     $rows_output++;      $rows_output++;
     #      #
     # Let the user know what we are doing      # Let the user know what we are doing
Line 1491  sub StudentTriesOnSequence { Line 1491  sub StudentTriesOnSequence {
             $performance_length++;              $performance_length++;
             my $symbol = ' '; # default to space              my $symbol = ' '; # default to space
             #              #
               my $awarded = 0;
               if (exists($resource_data->{'resource.'.$partnum.'.awarded'})) {
                   $awarded = $resource_data->{'resource.'.$partnum.'.awarded'};
                   $awarded = 0 if (! $awarded);
               }
               #
               my $status = '';
             if (exists($resource_data->{'resource.'.$partnum.'.solved'})) {              if (exists($resource_data->{'resource.'.$partnum.'.solved'})) {
                 my $status = $resource_data->{'resource.'.$partnum.'.solved'};                  $status = $resource_data->{'resource.'.$partnum.'.solved'};
                 if ($status eq 'correct_by_override') {              }
                     $symbol = '+';              #
                     $sum++;              my $tries = 0;
                 } elsif ($status eq 'incorrect_by_override') {              if(exists($resource_data->{'resource.'.$partnum.'.tries'})) {
                     $symbol = '-';                  $tries = $resource_data->{'resource.'.$partnum.'.tries'};
                 } elsif ($status eq 'ungraded_attempted') {              }
                     $symbol = '#';              #
                 } elsif ($status eq 'incorrect_attempted')  {              if ($awarded > 0) {
                     $symbol = '.';                  # The student has gotten the problem correct to some degree
                 } elsif ($status eq 'excused') {                  if ($status eq 'excused') {
                     $symbol = 'x';                      $symbol = 'x';
                     $max--;                      $max--;
                 } elsif (($status eq 'correct_by_scantron' ||                  } elsif ($status eq 'correct_by_override') {
                           $status eq 'correct_by_student') &&                      $symbol = '+';
                     exists($resource_data->{'resource.'.$partnum.'.tries'})){                      $sum++;
                     $tries = $resource_data->{'resource.'.$partnum.'.tries'};                  } elsif ($tries > 0) {
                     if ($tries > 9) {                      if ($tries > 9) {
                         $symbol = '*';                          $symbol = '*';
                     } elsif ($tries > 0) {  
                         $symbol = $tries;  
                     } else {                      } else {
                         $symbol = ' ';                          $symbol = $tries;
                     }                      }
                     $sum++;                      $sum++;
                 } elsif (exists($resource_data->{'resource.'.  
                                                      $partnum.'.tries'})){  
                     $symbol = '.';  
                 } else {                  } else {
                     $symbol = ' ';                      $symbol = '+';
                       $sum++;
                 }                  }
             } else {              } else {
                 # Unsolved.  Did they try?                  # The student has the problem incorrect or it is ungraded
                 if (exists($resource_data->{'resource.'.$partnum.'.tries'})){                  if ($status eq 'excused') {
                       $symbol = 'x';
                       $max--;
                   } elsif ($status eq 'incorrect_by_override') {
                       $symbol = '-';
                   } elsif ($status eq 'ungraded_attempted') {
                       $symbol = '#';
                   } elsif ($status eq 'incorrect_attempted' ||
                            $tries > 0)  {
                     $symbol = '.';                      $symbol = '.';
                 } else {                  } else {
                     $symbol = ' ';                      # Problem is wrong and has not been attempted.
                       $symbol=' ';
                 }                  }
             }              }
             #              #

Removed from v.1.77  
changed lines
  Added in v.1.79


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