Diff for /loncom/interface/statistics/lonstudentassessment.pm between versions 1.81.2.3 and 1.82

version 1.81.2.3, 2004/04/06 21:42:26 version 1.82, 2004/01/27 19:50:03
Line 163  sub BuildStudentAssessmentPage { Line 163  sub BuildStudentAssessmentPage {
     #      #
     $single_student_mode = 0;      $single_student_mode = 0;
     $single_student_mode = 1 if ($ENV{'form.SelectedStudent'});      $single_student_mode = 1 if ($ENV{'form.SelectedStudent'});
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},  
                                             ['selectstudent']);  
     if ($ENV{'form.selectstudent'}) {      if ($ENV{'form.selectstudent'}) {
         &Apache::lonstatistics::DisplayClasslist($r);          &Apache::lonstatistics::DisplayClasslist($r);
         return;          return;
Line 787  sub StudentAverageTotal { Line 785  sub StudentAverageTotal {
         $total_ave += $ave;          $total_ave += $ave;
         my $max = $Statistics->{$seq->{'symb'}}->{'max'};          my $max = $Statistics->{$seq->{'symb'}}->{'max'};
         $total_max += $max;          $total_max += $max;
         if ($ave == 0) {          $ave = sprintf("%.2f",$ave);
             $ave = "0.00";  
         }  
         $ave .= ' ';  
         $max .= '   ';  
         $Str .= '<tr><td>'.$seq->{'title'}.'</td>'.          $Str .= '<tr><td>'.$seq->{'title'}.'</td>'.
             '<td align="right">'.$ave.'</td>'.              '<td align="right">'.$ave.'&nbsp;</td>'.
                 '<td align="right">'.$max.'</td></tr>'."\n";              '<td align="right">'.$max.'&nbsp;'.'</td></tr>'."\n";
     }      }
     $total_ave = int(100*$total_ave)/100; # only two digit      $total_ave = sprintf('%.2f',$total_ave); # only two digit
     $Str .= "</table>\n";      $Str .= "</table>\n";
     $Str .= '<table border=2 cellspacing="1">'."\n";      $Str .= '<table border=2 cellspacing="1">'."\n";
     $Str .= '<tr><th>Number of Students</th><th>Average</th>'.      $Str .= '<tr><th>Number of Students</th><th>Average</th>'.
         "<th>Maximum</th></tr>\n";          "<th>Maximum</th></tr>\n";
     $Str .= '<tr><td>'.($num_students-$nodata_count).'</td>'.      $Str .= '<tr>'.
         '<td>'.$total_ave.'</td><td>'.$total_max.'</td>';          '<td align="right">'.($num_students-$nodata_count).'</td>'.
           '<td align="right">'.$total_ave.'&nbsp;'.'</td>'.
           '<td align="right">'.$total_max.'&nbsp;'.'</td>';
     $Str .= "</table>\n";      $Str .= "</table>\n";
     return $Str;      return $Str;
 }  }
Line 992  END Line 988  END
     $cols_output = 0;      $cols_output = 0;
     $excel_sheet->write($rows_output++,$cols_output++,$datadescription);      $excel_sheet->write($rows_output++,$cols_output++,$datadescription);
     #      #
 #    if ($data eq 'tries' || $data eq 'scores') {      if ($data eq 'tries' || $data eq 'scores') {
         $rows_output+=2;          $rows_output++;
 #    }      }
     #      #
     # Add the student headers      # Add the student headers
     $cols_output = 0;      $cols_output = 0;
Line 1002  END Line 998  END
         $excel_sheet->write($rows_output,$cols_output++,$field);          $excel_sheet->write($rows_output,$cols_output++,$field);
     }      }
     my $row_offset = 0;      my $row_offset = 0;
 #    if ($data eq 'tries' || $data eq 'scores') {      if ($data eq 'tries' || $data eq 'scores') {
         $row_offset = -1;          $row_offset = -1;
 #    }      }
     #      #
     # Add the remaining column headers      # Add the remaining column headers
     my $total_formula_string = '=0';      my $total_formula_string = '=0';
Line 1018  END Line 1014  END
                 ($rows_output,$cols_output);                  ($rows_output,$cols_output);
             $seq->{'Excel:startcol'}=$cols_output;              $seq->{'Excel:startcol'}=$cols_output;
             # Put the names of the problems and parts into the sheet              # Put the names of the problems and parts into the sheet
               my $count = 0;
             foreach my $res (@{$seq->{'contents'}}) {              foreach my $res (@{$seq->{'contents'}}) {
                 if ($res->{'type'} ne 'assessment'  ||                   next if ($res->{'type'} ne 'assessment');
                     ! exists($res->{'parts'})       ||  
                     ref($res->{'parts'}) ne 'ARRAY' ||  
                     scalar(@{$res->{'parts'}}) < 1) {  
                     next;  
                 }  
                 if (scalar(@{$res->{'parts'}}) > 1) {                  if (scalar(@{$res->{'parts'}}) > 1) {
                     foreach my $part (@{$res->{'parts'}}) {                      foreach my $part (@{$res->{'parts'}}) {
                         $excel_sheet->write($rows_output,                          $excel_sheet->write($rows_output,
Line 1036  END Line 1028  END
                                         $cols_output++,                                          $cols_output++,
                                         $res->{'title'});                                          $res->{'title'});
                 }                  }
                   $count++;
             }              }
             # Determine ending cell              # Determine ending cell
             $seq->{'Excel:endcell'} =               if ($count == 1) {
                   $seq->{'Excel:endcell'} = $seq->{'Excel:startcell'};
                   $seq->{'Excel:endcol'}  = $seq->{'Excel:startcol'};
               } else {
                 &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;
               }
             # 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'}.
Line 1067  END Line 1064  END
     $total_formula = $excel_sheet->store_formula($total_formula_string);      $total_formula = $excel_sheet->store_formula($total_formula_string);
     #      #
     # Bookkeeping      # Bookkeeping
 #    if ($data eq 'sum and total' || $data eq 'parts correct total') {      if ($data eq 'sum and total' || $data eq 'parts correct total') {
 #        $rows_output += 1;          $rows_output += 2;
 #    } else {      } else {
         $rows_output += 1;          $rows_output += 1;
 #    }      }
     #      #
     # Output a row for MAX      # Output a row for MAX
     $cols_output = 0;      $cols_output = 0;

Removed from v.1.81.2.3  
changed lines
  Added in v.1.82


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