--- loncom/interface/statistics/lonstudentassessment.pm 2004/07/13 15:03:34 1.102 +++ loncom/interface/statistics/lonstudentassessment.pm 2004/09/23 17:48:00 1.105 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: lonstudentassessment.pm,v 1.102 2004/07/13 15:03:34 matthew Exp $ +# $Id: lonstudentassessment.pm,v 1.105 2004/09/23 17:48:00 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -694,6 +694,10 @@ sub html_outputstudent { my @to_show = &get_student_fields_to_show(); foreach my $field (@to_show) { my $title=$student->{$field}; + # Deal with 'comments' - how I love special cases + if ($field eq 'comments') { + $title = ''.&mt('Comments').''; + } my $base = length($title); my $width=$Apache::lonstatistics::StudentData{$field}->{'width'}; $Str .= $title.' 'x($width-$base).$padding; @@ -772,6 +776,8 @@ sub html_outputstudent { } if (! defined($score)) { $score = ' ' x $total_sum_width; + } else { + $score = sprintf("%.0f",$score); } $Str .= ' '.' 'x($total_sum_width-length($score)).$score.' / '.$max; $Str .= " \n"; @@ -799,18 +805,16 @@ sub html_finish { } sub StudentAverageTotal { - my $Str = "

Summary Tables

\n"; -# my $max_students; -# my $total_ave = 0; -# my $total_max = 0; + my $Str = '

'.&mt('Summary Tables').'

'.$/; $Str .= ''."\n"; - $Str .= "\n"; + $Str .= ''. + ''. + ''. + ''. + ''.$/; foreach my $seq (&Apache::lonstatistics::Sequences_with_Assess()) { my $ave; my $num_students = $Statistics->{$seq->{'symb'}}->{'num_students'}; -# if ($num_students > $max_students) { -# $max_students = $num_students; -# } if ($num_students > 0) { $ave = int(100* ($Statistics->{$seq->{'symb'}}->{'score'}/$num_students) @@ -818,34 +822,32 @@ sub StudentAverageTotal { } else { $ave = 0; } -# $total_ave += $ave; my $max = $Statistics->{$seq->{'symb'}}->{'max'}; -# $total_max += $max; $ave = sprintf("%.2f",$ave); $Str .= ''. ''. ''."\n"; } -# $total_ave = sprintf('%.2f',$total_ave); # only two digit $Str .= "
TitleAverageMaximum
'.&mt('Title').''.&mt('Average').''.&mt('Maximum').'
'.$seq->{'title'}.''.$ave.' '.$max.' '.'
\n"; -# $Str .= ''."\n"; -# $Str .= ''. -# "\n"; -# $Str .= ''. -# ''. -# ''. -# ''; -# $Str .= "
Number of StudentsAverageMaximum
'.$max_students.''.$total_ave.' '.''.$total_max.' '.'
\n"; return $Str; } sub SingleStudentTotal { my $student = &Apache::lonstatistics::current_student(); - my $Str = "

Summary table for ".$student->{'fullname'}." ". - $student->{'username'}.'@'.$student->{'domain'}."

\n"; + my $Str = '

'.&mt('Summary table for [_1] ([_2]@[_3])', + $student->{'fullname'}, + $student->{'username'},$student->{'domain'}).'

'; + $Str .= $/; $Str .= ''."\n"; $Str .= - "\n"; + ''. + ''; + if ($chosen_output->{'base'} eq 'tries') { + $Str .= ''; + } else { + $Str .= ''; + } + $Str .= ''."\n"; my $total = 0; my $total_max = 0; foreach my $seq (&Apache::lonstatistics::Sequences_with_Assess()) { @@ -857,7 +859,7 @@ sub SingleStudentTotal { $total += $value; $total_max +=$max; } - $Str .= ''. + $Str .= ''. ''. '\n"; $Str .= "
Sequence or FolderScoreMaximum
'.&mt('Sequence or Folder').''.&mt('Parts Correct').''.&mt('Score').''.&mt('Maximum').'
Total
'.&mt('Total').''.$total.''.$total_max."
\n"; @@ -921,39 +923,18 @@ sub excel_initialize { # Add 2 because we need a 'sequence_sum' and 'total' column for each $total_columns += 2; } + my $too_many_cols_error_message = + '

'.&mt('Unable to Complete Request').'

'.$/. + '

'.&mt('LON-CAPA is unable to produce your Excel spreadsheet because your selections will result in more than 255 columns. Excel allows only 255 columns in a spreadsheet.').'

'.$/. + '

'.&mt('You may consider reducing the number of Sequences or Folders you have selected.').'

'.$/. + '

'.&mt('LON-CAPA can produce CSV files of this data or Excel files of the Scores Summary data.').'

'.$/; if ($chosen_output->{'base'} eq 'tries' && $total_columns > 255) { - $r->print(<Unable to Complete Request -

-LON-CAPA is unable to produce your Excel spreadsheet because your selections -will result in more than 255 columns. Excel allows only 255 columns in a -spreadsheet. -

-You may consider reducing the number of Sequences or Folders you -have selected. -

-LON-CAPA can produce CSV files of this data or Excel files of the -summary data (Parts Correct or Parts Correct & Totals). -

-END - $request_aborted = 1; + $r->print($too_many_cols_error_message); + $request_aborted = 1; } if ($chosen_output->{'base'} eq 'scores' && $total_columns > 255) { - $r->print(<Unable to Complete Request -

-LON-CAPA is unable to produce your Excel spreadsheet because your selections -will result in more than 255 columns. Excel allows only 255 columns in a -spreadsheet. -

-You may consider reducing the number of Sequences or Folders you -have selected. -

-LON-CAPA can produce CSV files of this data or Excel files of the -Scores Summary data. -

-END - $request_aborted = 1; + $r->print($too_many_cols_error_message); + $request_aborted = 1; } return if ($request_aborted); # @@ -1325,7 +1306,12 @@ sub excel_outputstudent { # Write out student data my @to_show = &get_student_fields_to_show(); foreach my $field (@to_show) { - $excel_sheet->write($rows_output,$cols_output++,$student->{$field}); + my $value = $student->{$field}; + if ($field eq 'comments') { + $value = &Apache::lonmsg::retrieve_instructor_comments + ($student->{'username'},$student->{'domain'}); + } + $excel_sheet->write($rows_output,$cols_output++,$value); } # # Get student assessment data @@ -1586,7 +1572,12 @@ sub csv_outputstudent { # Output student fields my @to_show = &get_student_fields_to_show(); foreach my $field (@to_show) { - $Str .= '"'.&Apache::loncommon::csv_translate($student->{$field}).'",'; + my $value = $student->{$field}; + if ($field eq 'comments') { + $value = &Apache::lonmsg::retrieve_instructor_comments + ($student->{'username'},$student->{'domain'}); + } + $Str .= '"'.&Apache::loncommon::csv_translate($value).'",'; } # # Get student assessment data @@ -1772,7 +1763,7 @@ sub StudentTriesOnSequence { } } # - if (! defined($tries)) { + if (! defined($tries) || $symbol eq '.') { $tries = $symbol; } push (@TriesData,$tries);