--- loncom/interface/statistics/lonstudentassessment.pm 2003/03/03 22:54:05 1.32
+++ loncom/interface/statistics/lonstudentassessment.pm 2003/03/04 16:10:09 1.34
@@ -1,6 +1,6 @@
# The LearningOnline Network with CAPA
#
-# $Id: lonstudentassessment.pm,v 1.32 2003/03/03 22:54:05 matthew Exp $
+# $Id: lonstudentassessment.pm,v 1.34 2003/03/04 16:10:09 matthew Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -143,6 +143,7 @@ the button marked "Update Disp
ENDMSG
+# $r->print(&OutputDescriptions());
return;
}
#
@@ -273,33 +274,62 @@ sub CreateInterface {
my @OutputOptions =
({ name => 'HTML, with links',
value => 'html, with links',
- description => ''},
+ description => 'Output HTML with each symbol linked to the problem '.
+ 'which generated it.'},
{ name => 'HTML, without links',
value => 'html, without links',
- description => ''},
- { name => 'HTML, totals',
- value => 'html, totals',
- description => ''},
+ description => 'Output HTML. By not including links, the size of the'.
+ ' web page is greatly reduced. If your browser crashes on the '.
+ 'full display, try this.'},
{ name => 'HTML, scores only',
value => 'html, scores only',
- description => ''},
+ description => 'Output HTML, only showing the total number of correct'.
+ ' problems (or problem parts) and not the maximum possible for '.
+ 'each student'},
+ { name => 'HTML, totals',
+ value => 'html, totals',
+ description => 'Output HTML, but only the summary statistics for each'.
+ ' sequence selected.'},
+ { name => 'Excel, scores only',
+ value => 'excel, scores only',
+ description => 'Output an Excel file (compatable with Excel 95), '.
+ 'with a single column for each sequence showing the students '.
+ 'score.'},
+# { name => 'Excel, everything',
+# value => 'excel, everything',
+# description => 'Output an Excel file (compatable with Excel 95), '.
+# 'with a seperate worksheet for each sequence you have selected '.
+# 'the data for each problem part '.
+# '(number of tries, status, points awarded) '.
+# 'will be listed.'},
{ name => 'Excel, totals',
value => 'excel, totals',
+ description => 'Output an Excel file (compatable with Excel 95), '.
+ 'with two columns for each sequence, the students score on the '.
+ 'sequence and the students maximum possible on the sequence'},
+ { name => 'CSV, everything',
+ value => 'csv, everything',
description => ''},
- { name => 'Excel, scores only',
- value => 'excel, scores only',
+ { name => 'CSV, scores only',
+ value => 'csv, scores only',
description => ''},
{ name => 'CSV, totals',
value => 'csv, totals',
description => ''},
- { name => 'CSV, scores only',
- value => 'csv, scores only',
- description => ''},
- { name => 'CSV, everything',
- value => 'csv, everything',
- description => ''}
);
+sub OutputDescriptions {
+ my $Str = '';
+ $Str .= "Output Modes
\n";
+ $Str .= "\n";
+ foreach my $outputmode (@OutputOptions) {
+ $Str .=" - ".$outputmode->{'name'}."
\n";
+ $Str .=" - ".$outputmode->{'description'}."
\n";
+ }
+ $Str .= "
\n";
+ return $Str;
+}
+
sub CreateAndParseOutputSelector {
my $Str = '';
my $elementname = 'outputmode';
@@ -551,20 +581,55 @@ sub excel_initialize {
$excel_workbook->set_tempdir($Apache::lonnet::tmpdir);
#
# Add a worksheet
- $excel_sheet = $excel_workbook->addworksheet
- ($ENV{'course.'.$ENV{'request.course.id'}.'.description'});
+ my $sheetname = $ENV{'course.'.$ENV{'request.course.id'}.'.description'};
+ if (length($sheetname) > 31) {
+ $sheetname = substr($sheetname,0,31);
+ }
+ $excel_sheet = $excel_workbook->addworksheet($sheetname);
+ #
+ # Put the course description in the header
+ $excel_sheet->write($rows_output,$cols_output++,
+ $ENV{'course.'.$ENV{'request.course.id'}.'.description'});
+ $cols_output += 3;
+ #
+ # Put a description of the sections listed
+ my $sectionstring = '';
+ my @Sections = @Apache::lonstatistics::SelectedSections;
+ if (scalar(@Sections) > 1) {
+ if (scalar(@Sections) > 2) {
+ my $last = pop(@Sections);
+ $sectionstring = "Sections ".join(', ',@Sections).', and '.$last;
+ } else {
+ $sectionstring = "Sections ".join(' and ',@Sections);
+ }
+ } else {
+ if ($Sections[0] eq 'all') {
+ $sectionstring = "All sections";
+ } else {
+ $sectionstring = "Section ".$Sections[0];
+ }
+ }
+ $excel_sheet->write($rows_output,$cols_output++,$sectionstring);
+ $cols_output += scalar(@Sections);
+ #
+ # Put the date in there too
+ $excel_sheet->write($rows_output,$cols_output++,
+ 'Compiled on '.localtime(time));
+ #
+ $rows_output++;
#
# Add the student headers
+ $cols_output = 0;
foreach my $field (&get_student_fields_to_show()) {
- $excel_sheet->write(1,$cols_output++,$field);
+ $excel_sheet->write($rows_output,$cols_output++,$field);
}
#
# Add the Sequence Headers
foreach my $seq (&get_sequences_to_show) {
- $excel_sheet->write(0,$cols_output,$seq->{'title'});
+ $excel_sheet->write($rows_output,$cols_output,$seq->{'title'});
if ($show eq 'totals') {
- $excel_sheet->write(1,$cols_output,'score');
- $excel_sheet->write(1,$cols_output+1,'maximum');
+ $excel_sheet->write($rows_output+1,$cols_output,'score');
+ $excel_sheet->write($rows_output+1,$cols_output+1,'maximum');
$cols_output += 2;
} else {
$cols_output++;
@@ -573,9 +638,9 @@ sub excel_initialize {
#
# Bookkeeping
if ($show eq 'totals') {
- $rows_output = 2;
+ $rows_output += 2;
} else {
- $rows_output = 1;
+ $rows_output += 1;
}
#
# Let the user know what we are doing
@@ -648,7 +713,8 @@ sub excel_outputstudent {
$r->print($num_students.' out of '.
(scalar(@Apache::lonstatistics::Students)).
" students processed. ".
- $time_est." remain.
\n");
+ $time_est." remain. Elapsed: ".(time - $start_time).
+ "
\n");
$r->rflush();
}
return;