--- loncom/interface/statistics/lonstudentassessment.pm 2004/07/13 15:03:34 1.102 +++ loncom/interface/statistics/lonstudentassessment.pm 2004/12/10 16:52:53 1.107 @@ -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.107 2004/12/10 16:52:53 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 = "
Title | Average | Maximum |
---|---|---|
'.&mt('Title').' | '. + ''.&mt('Average').' | '. + ''.&mt('Maximum').' | '. + '
'.$seq->{'title'}.' | '. ''.$ave.' | '. ''.$max.' '.' |
Number of Students | Average | '. -# "Maximum |
---|---|---|
'.$max_students.' | '. -# ''.$total_ave.' '.' | '. -# ''.$total_max.' '.' | '; -# $Str .= "
Sequence or Folder | Score | Maximum | |
---|---|---|---|
'.&mt('Sequence or Folder').' | '; + if ($chosen_output->{'base'} eq 'tries') { + $Str .= ''.&mt('Parts Correct').' | '; + } else { + $Str .= ''.&mt('Score').' | '; + } + $Str .= ''.&mt('Maximum').' | '."
Total | '. + $Str .= '|||
'.&mt('Total').' | '. ''.$total.' | '. ''.$total_max." |
'.&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(<-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(<-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); # @@ -1083,13 +1064,14 @@ END $cols_output++, $res->{'title'}.' part '.$part, $format->{'bold'}); + $count++; } } else { $excel_sheet->write($resource_name_row, $cols_output++, $res->{'title'},$format->{'bold'}); + $count++; } - $count++; } } # Determine ending cell @@ -1237,7 +1219,7 @@ END if ($chosen_output->{'grand_maximum'}) { $excel_sheet->repeat_formula($maximum_data_row,$cols_output++, $maximum_formula,undef, - %total_cell_translation); + %maximum_cell_translation); } } # End of MAXIMUM row output if ($chosen_output->{'maximum_row'}) { $rows_output = $first_data_row; @@ -1325,7 +1307,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 @@ -1347,6 +1334,10 @@ sub excel_outputstudent { $total_cell_translation{$seq->{'Excel:scorecell'}} = &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell ($rows_output,$seq->{'Excel:scorecol'}); + # and maximum cell + $maximum_cell_translation{$seq->{'Excel:maxcell'}} = + &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell + ($rows_output,$seq->{'Excel:maxcol'}); # my ($performance,$performance_length,$score,$seq_max,$rawdata); if ($chosen_output->{'tries'} || $chosen_output->{'correct'}){ @@ -1417,7 +1408,7 @@ sub excel_outputstudent { if ($chosen_output->{'grand_maximum'}) { $excel_sheet->repeat_formula($rows_output,$cols_output++, $maximum_formula,undef, - %total_cell_translation); + %maximum_cell_translation); } # # Bookkeeping @@ -1586,7 +1577,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 +1768,7 @@ sub StudentTriesOnSequence { } } # - if (! defined($tries)) { + if (! defined($tries) || $symbol eq '.') { $tries = $symbol; } push (@TriesData,$tries);