--- loncom/interface/statistics/lonstudentassessment.pm 2004/04/06 19:09:10 1.81.2.2 +++ loncom/interface/statistics/lonstudentassessment.pm 2004/01/27 19:50:03 1.82 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: lonstudentassessment.pm,v 1.81.2.2 2004/04/06 19:09:10 albertel Exp $ +# $Id: lonstudentassessment.pm,v 1.82 2004/01/27 19:50:03 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -163,8 +163,6 @@ sub BuildStudentAssessmentPage { # $single_student_mode = 0; $single_student_mode = 1 if ($ENV{'form.SelectedStudent'}); - &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, - ['selectstudent']); if ($ENV{'form.selectstudent'}) { &Apache::lonstatistics::DisplayClasslist($r); return; @@ -787,22 +785,20 @@ sub StudentAverageTotal { $total_ave += $ave; my $max = $Statistics->{$seq->{'symb'}}->{'max'}; $total_max += $max; - if ($ave == 0) { - $ave = "0.00"; - } - $ave .= ' '; - $max .= ' '; + $ave = sprintf("%.2f",$ave); $Str .= '<tr><td>'.$seq->{'title'}.'</td>'. - '<td align="right">'.$ave.'</td>'. - '<td align="right">'.$max.'</td></tr>'."\n"; + '<td align="right">'.$ave.' </td>'. + '<td align="right">'.$max.' '.'</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 border=2 cellspacing="1">'."\n"; $Str .= '<tr><th>Number of Students</th><th>Average</th>'. "<th>Maximum</th></tr>\n"; - $Str .= '<tr><td>'.($num_students-$nodata_count).'</td>'. - '<td>'.$total_ave.'</td><td>'.$total_max.'</td>'; + $Str .= '<tr>'. + '<td align="right">'.($num_students-$nodata_count).'</td>'. + '<td align="right">'.$total_ave.' '.'</td>'. + '<td align="right">'.$total_max.' '.'</td>'; $Str .= "</table>\n"; return $Str; } @@ -1018,13 +1014,9 @@ END ($rows_output,$cols_output); $seq->{'Excel:startcol'}=$cols_output; # Put the names of the problems and parts into the sheet + my $count = 0; foreach my $res (@{$seq->{'contents'}}) { - if ($res->{'type'} ne 'assessment' || - ! exists($res->{'parts'}) || - ref($res->{'parts'}) ne 'ARRAY' || - scalar(@{$res->{'parts'}}) < 1) { - next; - } + next if ($res->{'type'} ne 'assessment'); if (scalar(@{$res->{'parts'}}) > 1) { foreach my $part (@{$res->{'parts'}}) { $excel_sheet->write($rows_output, @@ -1036,12 +1028,17 @@ END $cols_output++, $res->{'title'}); } + $count++; } # 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 - ($rows_output,$cols_output-1); - $seq->{'Excel:endcol'}=$cols_output-1; + ($rows_output,$cols_output-1); + $seq->{'Excel:endcol'} = $cols_output-1; + } # Create the formula for summing up this sequence $seq->{'Excel:sum'}= $excel_sheet->store_formula ('=SUM('.$seq->{'Excel:startcell'}.