--- loncom/interface/statistics/lonstudentassessment.pm 2003/06/10 19:19:57 1.55
+++ loncom/interface/statistics/lonstudentassessment.pm 2003/09/30 11:41:06 1.68
@@ -1,6 +1,6 @@
# The LearningOnline Network with CAPA
#
-# $Id: lonstudentassessment.pm,v 1.55 2003/06/10 19:19:57 matthew Exp $
+# $Id: lonstudentassessment.pm,v 1.68 2003/09/30 11:41:06 matthew Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -138,8 +138,21 @@ Inputs:
#######################################################
sub BuildStudentAssessmentPage {
my ($r,$c)=@_;
+
undef($Statistics);
+ undef($show_links);
+ undef($output_mode);
+ undef($data);
+ undef($base);
+ undef($datadescription);
+ undef($single_student_mode);
+
+ $single_student_mode = 0;
$single_student_mode = 1 if ($ENV{'form.SelectedStudent'});
+ if ($ENV{'form.selectstudent'}) {
+ &Apache::lonstatistics::DisplayClasslist($r);
+ return;
+ }
#
# Print out the HTML headers for the interface
# This also parses the output mode selector
@@ -149,6 +162,7 @@ sub BuildStudentAssessmentPage {
$r->print('');
$r->rflush();
+ #
if (! exists($ENV{'form.notfirstrun'}) && ! $single_student_mode) {
return;
}
@@ -179,6 +193,13 @@ sub BuildStudentAssessmentPage {
@Students = @Apache::lonstatistics::Students;
}
#
+ # Perform generic initialization tasks
+ # Since we use lonnet::EXT to retrieve problem weights,
+ # to ensure current data we must clear the caches out.
+ # This makes sure that parameter changes at the student level
+ # are immediately reflected in the chart.
+ &Apache::lonnet::clear_EXT_cache_status();
+ #
# Call the initialize routine selected above
$initialize->($r);
foreach my $student (@Students) {
@@ -285,8 +306,12 @@ sub CreateInterface {
$Str .= '
'."\n";
$Str .= ''."\n";
$Str .= '';
- $Str .= ' 'x8;
+ $Str .= ' 'x5;
+ $Str .= '';
+ $Str .= ' 'x5;
+ $Str .= '';
+ $Str .= ' 'x5;
+ $Str .= ' ';
return $Str;
}
@@ -359,29 +390,12 @@ my @OutputOptions =
mode => 'excel',
show_links => 'no',
},
-# { name => 'multi-sheet Excel',
-# value => 'multi-sheet excel',
-# 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.',
-# mode => 'multi-sheet excel',
-# show_links => 'no',
-# },
-# { name => 'multi-sheet Excel, by section',
-# value => 'multi-sheet excel, by section',
-# 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. '.
-# 'There will be one Excel workbook for each section selected.',
-# mode => 'multi-sheet excel',
-# show_links => 'no',
-# },
{ name => 'CSV',
value => 'csv',
description => 'Output a comma seperated values file suitable for '.
- 'import into a spreadsheet.',
+ 'import into a spreadsheet program. Using this method as opposed '.
+ 'to Excel output allows you to organize your data before importing'.
+ ' it into a spreadsheet program.',
mode => 'csv',
show_links => 'no',
},
@@ -389,7 +403,7 @@ my @OutputOptions =
sub OutputDescriptions {
my $Str = '';
- $Str .= "
Output Modes
\n";
+ $Str .= "
Output Formats
\n";
$Str .= "
\n";
foreach my $outputmode (@OutputOptions) {
$Str .="
".$outputmode->{'name'}."
\n";
@@ -438,61 +452,76 @@ sub CreateAndParseOutputSelector {
## Data selector stuff
##
my @OutputDataOptions =
- ( { name =>'Tries',
- base =>'tries',
- value => 'tries',
- shortdesc => 'Number of Tries before success on each Problem Part',
- longdesc =>'The number of tries before success on each problem part.',
- },
- { name =>'Parts Correct',
- base =>'tries',
- value => 'parts correct',
- shortdesc => 'Number of Problem Parts completed successfully.',
- longdesc => 'The Number of Problem Parts completed successfully.',
- },
- { name =>'Parts Correct & Maximums',
- base =>'tries',
- value => 'parts correct total',
- shortdesc => 'Number of Problem Parts completed successfully.',
- longdesc => 'The Number of Problem Parts completed successfully and '.
- 'the maximum possible for each student',
- },
- { name => 'Scores',
- base => 'scores',
- value => 'scores',
- shortdesc => 'Score on each Problem Part',
- longdesc =>'The students score on each problem part, computed as'.
- 'the part weight * part awarded',
- },
- { name => 'Scores Sum',
- base => 'scores',
- value => 'sum only',
- shortdesc => 'Sum of Scores on each Problem Part',
- longdesc =>'The total of the scores of the student on each problem'.
- ' part in the sequences or folders selected.',
- },
- { name => 'Scores Sum & Maximums',
- base => 'scores',
- value => 'sum and total',
- shortdesc => 'Total Score and Maximum Possible for each '.
- 'Sequence or Folder',
- longdesc => 'The total of the scores of the student on each problem'.
- ' and the maximum possible for that student on each Sequence or '.
- ' Folder.',
- },
- { name => 'Summary Table (Scores)',
- base => 'scores',
- value => 'final table scores',
- shortdesc => 'Summary of Scores',
- longdesc => '',
- },
- { name => 'Summary Table (Parts)',
- base => 'tries',
- value => 'final table parts',
- shortdesc => 'Summary of Parts Correct',
- longdesc => '',
- }
- );
+ (
+ { name => 'Scores',
+ base => 'scores',
+ value => 'scores',
+ shortdesc => 'Score on each Problem Part',
+ longdesc =>'The students score on each problem part, computed as'.
+ 'the part weight * part awarded',
+ },
+ { name => 'Scores Sum',
+ base => 'scores',
+ value => 'sum only',
+ shortdesc => 'Sum of Scores on each Problem Part',
+ longdesc =>'The total of the scores of the student on each problem'.
+ ' part in the sequences or folders selected.',
+ },
+ { name => 'Scores Sum & Maximums',
+ base => 'scores',
+ value => 'sum and total',
+ shortdesc => 'Total Score and Maximum Possible for each '.
+ 'Sequence or Folder',
+ longdesc => 'The score of each student as well as the '.
+ ' maximum possible on each Sequence or Folder.',
+ },
+ { name => 'Scores Summary Table Only',
+ base => 'scores',
+ value => 'final table scores',
+ shortdesc => 'Summary of Scores',
+ longdesc => 'The average score on each sequence or folder for the '.
+ 'selected students.',
+ },
+ { name =>'Tries',
+ base =>'tries',
+ value => 'tries',
+ shortdesc => 'Number of Tries before success on each Problem Part',
+ longdesc =>'The number of tries before success on each problem part.',
+ },
+ { name =>'Parts Correct',
+ base =>'tries',
+ value => 'parts correct',
+ shortdesc => 'Number of Problem Parts completed successfully.',
+ longdesc => 'The Number of Problem Parts completed successfully'.
+ ' on each sequence or folder.',
+ },
+ { name =>'Parts Correct & Maximums',
+ base =>'tries',
+ value => 'parts correct total',
+ shortdesc => 'Number of Problem Parts completed successfully.',
+ longdesc => 'The Number of Problem Parts completed successfully and '.
+ 'the maximum possible for each student',
+ },
+ { name => 'Parts Summary Table Only',
+ base => 'tries',
+ value => 'final table parts',
+ shortdesc => 'Summary of Parts Correct',
+ longdesc => 'A summary table of the average number of problem parts '.
+ 'students were able to get correct on each sequence.',
+ },
+ );
+
+sub HTMLifyOutputDataDescriptions {
+ my $Str = '';
+ $Str .= "