--- loncom/interface/statistics/lonstudentassessment.pm 2003/06/10 15:42:51 1.54
+++ loncom/interface/statistics/lonstudentassessment.pm 2003/10/29 16:20:14 1.73
@@ -1,6 +1,6 @@
# The LearningOnline Network with CAPA
#
-# $Id: lonstudentassessment.pm,v 1.54 2003/06/10 15:42:51 matthew Exp $
+# $Id: lonstudentassessment.pm,v 1.73 2003/10/29 16:20:14 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,16 +162,8 @@ sub BuildStudentAssessmentPage {
$r->print('');
$r->rflush();
+ #
if (! exists($ENV{'form.notfirstrun'}) && ! $single_student_mode) {
- $r->print(<
-
-Please make your selections in the boxes above and hit
-the button marked "Update Display".
-
-
-ENDMSG
-# $r->print(&OutputDescriptions());
return;
}
#
@@ -188,6 +193,16 @@ ENDMSG
@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();
+ #
+ # Clean out loncoursedata's package data, just to be safe.
+ &Apache::loncoursedata::clear_internal_caches();
+ #
# Call the initialize routine selected above
$initialize->($r);
foreach my $student (@Students) {
@@ -294,8 +309,12 @@ sub CreateInterface {
$Str .= '
'."\n";
$Str .= ''."\n";
+ $Str .= '';
+ $Str .= ' 'x5;
+ $Str .= '';
+ $Str .= ' 'x5;
+ $Str .= '';
+ $Str .= ' 'x5;
+ $Str .= ' ';
return $Str;
}
@@ -366,29 +393,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',
},
@@ -396,7 +406,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";
@@ -409,6 +419,8 @@ sub OutputDescriptions {
sub CreateAndParseOutputSelector {
my $Str = '';
my $elementname = 'chartoutputmode';
+ &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
+ [$elementname]);
#
# Format for output options is 'mode, restrictions';
my $selected = 'html, without links';
@@ -445,61 +457,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 Summary',
+ 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 Per Problem',
+ 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 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 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 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 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 .= "