--- loncom/interface/lonstatistics.pm	2004/01/15 03:18:19	1.93
+++ loncom/interface/lonstatistics.pm	2004/02/19 20:17:01	1.97
@@ -1,6 +1,6 @@
 # The LearningOnline Network with CAPA
 #
-# $Id: lonstatistics.pm,v 1.93 2004/01/15 03:18:19 www Exp $
+# $Id: lonstatistics.pm,v 1.97 2004/02/19 20:17:01 matthew Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -38,21 +38,6 @@ lonstatistics
 
 Main handler for statistics and chart.
 
-=head1 PACKAGES USED
-
-    use strict;
-    use Apache::Constants qw(:common :http);
-    use Apache::lonnet();
-    use Apache::lonhomework;
-    use Apache::loncommon;
-    use Apache::loncoursedata;
-    use Apache::lonhtmlcommon;
-    use Apache::lonproblemanalysis;
-    use Apache::lonsubmissiontimeanalysis;
-    use Apache::lonproblemstatistics;
-    use Apache::lonstudentassessment;
-    use Apache::lonpercentage;
-    use Apache::lonmysql;
 =over 4
 
 =cut
@@ -72,21 +57,26 @@ use vars qw(
     $top_map 
     @Sequences 
     @SelectedMaps
-    @Assessments);
+    @Assessments
+    $enrollment_status);
 
 use Apache::lonnet();
 use Apache::lonhomework;
 use Apache::loncommon;
 use Apache::loncoursedata;
 use Apache::lonhtmlcommon;
+use Apache::lonmysql;
+use Apache::lonlocal;
+use Time::HiRes;
+#
+# Statistics Packages
 use Apache::lonproblemanalysis();
 use Apache::lonsubmissiontimeanalysis();
+use Apache::loncorrectproblemplot();
 use Apache::lonproblemstatistics();
 use Apache::lonstudentassessment();
 use Apache::lonpercentage;
-use Apache::lonmysql;
-use Apache::lonlocal;
-use Time::HiRes;
+use Apache::lonstudentsubmissions();
 
 #######################################################
 #######################################################
@@ -247,8 +237,8 @@ sub PrepareClasslist {
     }
     #
     # get the status requested
-    my $requested_status = 'Active';
-    $requested_status = $ENV{'form.Status'} if (exists($ENV{'form.Status'}));
+    $enrollment_status = 'Active';
+    $enrollment_status = $ENV{'form.Status'} if (exists($ENV{'form.Status'}));
     #
     # Process the classlist
     while (my ($student,$student_data) = each (%$classlist)) {
@@ -278,8 +268,8 @@ sub PrepareClasslist {
         foreach my $sect (@SelectedSections) {
             if ( (($sect eq 'all') || 
                   ($section eq $sect)) &&
-                 (($studenthash->{'status'} eq $requested_status) || 
-                  ($requested_status eq 'Any')) 
+                 (($studenthash->{'status'} eq $enrollment_status) || 
+                  ($enrollment_status eq 'Any')) 
                  ){
                 push (@Students,$studenthash);
                 last;
@@ -516,20 +506,6 @@ sub PrepareCourseData {
     $top_map = $top if (ref($top));
     @Sequences = @{$sequences} if (ref($sequences) eq 'ARRAY');
     @Assessments = @{$assessments} if (ref($assessments) eq 'ARRAY');
-    #
-    # Compute column widths
-    foreach my $seq (@Sequences) {
-        my $name_length = length($seq->{'title'});
-        my $num_parts = $seq->{'num_assess_parts'};
-        #
-        # Use 3 digits for each the sum and total, which means 7 total...
-        my $num_col = $num_parts+7;
-        if ($num_col < $name_length) {
-            $num_col = $name_length;
-        }
-        $seq->{'base_width'} = $name_length;
-        $seq->{'width'} = $num_col;
-    }
     return;
 }
 
@@ -1051,10 +1027,20 @@ sub CreateMainMenu {
     &mt('Detailed statistics and graphs of student performance on problems.'),
                  },
                    { internal_name => 'submissiontime_analysis',
-                     name => &mt('Submission Time Analysis'),
+                     name => &mt('Submission Time Plots'),
                      short_description => 
     &mt('Display and analysis of submission times on assessments.'),
                  },
+                   { internal_name => 'student_submission_reports',
+                     name => &mt('Student Submission Reports'),
+                     short_description => 
+    &mt('Prepare Excel spreadsheets of student submissions.'),
+                 },
+                   { internal_name => 'correct_problems_plot',
+                     name => &mt('Correct Problems Plot'),
+                     short_description => 
+    &mt('Display a histogram of student performance in the course.'),
+                 },
 #                   { internal_name => 'student_assessment',
 #                     name => &mt('Problem Status Chart'),
 #                     short_description => 
@@ -1117,7 +1103,10 @@ sub handler {
                                              'SelectedStudent']);
     #
     # Give the LON-CAPA page header
-    $r->print(&Apache::lonhtmlcommon::Title('Course Statistics and Charts').
+    $r->print('<html><head><title>'.
+              &mt('Course Statistics and Charts').
+              "</title></head>\n".
+              &Apache::loncommon::bodytag('Course Statistics and Charts')."\n".
 	      &Apache::loncommon::help_open_faq(139).
 	      &Apache::loncommon::help_open_bug('Statistics and Charts'));
     $r->rflush();
@@ -1170,6 +1159,10 @@ sub handler {
             &Apache::lonproblemanalysis::BuildProblemAnalysisPage($r,$c);
         } elsif($GoToPage eq 'submissiontime_analysis') {
             &Apache::lonsubmissiontimeanalysis::BuildSubmissionTimePage($r,$c);
+        } elsif($GoToPage eq 'student_submission_reports') {
+            &Apache::lonstudentsubmissions::BuildStudentSubmissionsPage($r,$c);
+        } elsif($GoToPage eq 'correct_problems_plot') {
+            &Apache::loncorrectproblemplot::BuildCorrectProblemsPage($r,$c);
         } elsif($GoToPage eq 'student_assessment') {
             &Apache::lonstudentassessment::BuildStudentAssessmentPage($r,$c);
         } elsif($GoToPage eq 'DoDiffGraph' || $GoToPage eq 'PercentWrongGraph') {