--- loncom/interface/lonstatistics.pm	2002/07/26 16:22:09	1.33
+++ loncom/interface/lonstatistics.pm	2002/07/29 21:19:44	1.36
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # (Publication Handler
 #
-# $Id: lonstatistics.pm,v 1.33 2002/07/26 16:22:09 stredwic Exp $
+# $Id: lonstatistics.pm,v 1.36 2002/07/29 21:19:44 minaeibi Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -31,7 +31,7 @@
 # 11/1,11/4,11/16,12/14,12/16,12/18,12/20,12/31 Behrouz Minaei
 # YEAR=2002
 # 1/22,2/1,2/6,2/25,3/2,3/6,3/17,3/21,3/22,3/26,4/7,5/6 Behrouz Minaei
-# 5/12,5/14,5/15,5/19,5/26,7/16,25/7  Behrouz Minaei
+# 5/12,5/14,5/15,5/19,5/26,7/16,25/7,29/7  Behrouz Minaei
 #
 ###
 
@@ -70,7 +70,8 @@ sub ProcessFormData{
     $cache->{'reportKey'} = 'false';
 
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
-                                            ['sort','download','reportSelected',
+                                            ['sort','download',
+                                             'reportSelected',
                                              'StudentAssessmentStudent']);
     &CheckFormElement($cache, 'Status', 'Status', 'Active');
     &CheckFormElement($cache, 'postdata', 'reportSelected', 'Class list');
@@ -98,6 +99,7 @@ sub ProcessFormData{
                       'StudentAssessmentStudent', 'All Students');
     $cache->{'StudentAssessmentStudent'} = 
         &Apache::lonnet::unescape($cache->{'StudentAssessmentStudent'});
+    &CheckFormElement($cache, 'DefaultColumns', 'DefaultColumns', 'false');
 
     if(defined($ENV{'form.Section'})) {
         my @sectionsSelected = (ref($ENV{'form.Section'}) ?
@@ -108,6 +110,24 @@ sub ProcessFormData{
         $cache->{'sectionsSelected'} = $cache->{'sectionList'};
     }
 
+    my @headingColumns=();
+    my @sequenceColumns=();
+    my $foundColumn = 0;
+    if(defined($ENV{'form.ReselectColumns'})) {
+        my @reselected = (ref($ENV{'form.ReselectColumns'}) ? 
+                          @{$ENV{'form.ReselectColumns'}}
+                          : ($ENV{'form.ReselectColumns'}));
+        foreach (@reselected) {
+            if(/HeadingColumn/) {
+                push(@headingColumns, $_);
+                $foundColumn = 1;
+            } elsif(/SequenceColumn/) {
+                push(@sequenceColumns, $_);
+                $foundColumn = 1;
+            }
+        }
+    }
+
     foreach (keys(%ENV)) {
         if(/form\.Analyze:::/) {
 #            $cache->{'reportSelected'} = 'Analyze';
@@ -120,9 +140,33 @@ sub ProcessFormData{
             $cache->{'AnalyzeProblem'} = $problem;
             
             &CheckFormElement($cache, 'Interval', 'Interval', '1');
+        } elsif(/form\.HeadingColumn/) {
+            my $value = $_;
+            $value =~ s/form\.//;
+            push(@headingColumns, $value);
+            $foundColumn=1;
+        } elsif(/form\.SequenceColumn/) {
+            my $value = $_;
+            $value =~ s/form\.//;
+            push(@sequenceColumns, $value);
+            $foundColumn=1;
         }
     }
 
+    if($foundColumn) {
+        $cache->{'HeadingsFound'} = join(':', @headingColumns);
+        $cache->{'SequencesFound'} = join(':', @sequenceColumns);;
+    }
+    if(!defined($cache->{'HeadingsFound'}) || 
+       $cache->{'DefaultColumns'} ne 'false') {
+        $cache->{'HeadingsFound'}='HeadingColumnFull Name';
+    }
+    if(!defined($cache->{'SequencesFound'}) ||
+       $cache->{'DefaultColumns'} ne 'false') {
+        $cache->{'SequencesFound'}='All Sequences';
+    }
+    $cache->{'DefaultColumns'} = 'false';
+
     return;
 
     # Select page to display
@@ -390,26 +434,6 @@ sub Close_PrgWin {
     $r->rflush(); 
 }
 
-# For loading the colored table for display or un-colored for print
-sub setbgcolor {
-    my $PrintTable=shift;
-    my %color;
-    if ($PrintTable){
-	$color{"gb"}="#FFFFFF";
-	$color{"red"}="#FFFFFF";
-	$color{"yellow"}="#FFFFFF";
-	$color{"green"}="#FFFFFF";
-	$color{"purple"}="#FFFFFF";
-    } else {
-	$color{"gb"}="#DDFFFF";
-	$color{"red"}="#FFDDDD";
-	$color{"yellow"}="#EEFFCC";
-	$color{"green"}="#DDFFDD";
-	$color{"purple"}="#FFDDFF";
-    }
-
-    return \%color;
-}
 
 sub BuildClasslist {
     my ($cacheDB,$students,$studentInformation,$headings)=@_;
@@ -525,7 +549,6 @@ sub BuildStatistics {
     my $cacheDB = "/home/httpd/perl/tmp/$ENV{'user.name'}".
                   "_$ENV{'user.domain'}_$courseID\_statistics.db";
 
-    my %color=&setbgcolor(0);
     my ($returnValue, $students) = &PrepareData($c, $cacheDB, 
                                                 \@studentInformation, 
                                                 \@headings);
@@ -559,12 +582,10 @@ sub BuildStatistics {
     if($GoToPage eq 'Activity Log') {
         &Apache::lonproblemstatistics::Activity();
     } elsif($GoToPage eq 'Problem Statistics') {
-        $r->print(
         &Apache::lonproblemstatistics::BuildProblemStatisticsPage($cacheDB, 
                                                                   $students, 
                                                                   $courseID, 
-                                                                  $c,$r,
-								  \%color));
+                                                                  $c,$r);
     } elsif($GoToPage eq 'Problem Analysis') {
         $r->print(
               &Apache::lonproblemanalysis::BuildProblemAnalysisPage($cacheDB));
@@ -603,6 +624,8 @@ sub BuildStatistics {
 sub handler {
     my $r=shift;
 
+#    $jr = $r;
+
     unless(&Apache::lonnet::allowed('vgr',$ENV{'request.course.id'})) {
         $ENV{'user.error.msg'}=
         $r->uri.":vgr:0:0:Cannot view grades for complete course";