--- loncom/interface/lonstatistics.pm	2008/12/03 11:47:30	1.145
+++ loncom/interface/lonstatistics.pm	2010/11/09 15:01:53	1.148.2.6
@@ -1,6 +1,6 @@
 # The LearningOnline Network with CAPA
 #
-# $Id: lonstatistics.pm,v 1.145 2008/12/03 11:47:30 diwert Exp $
+# $Id: lonstatistics.pm,v 1.148.2.6 2010/11/09 15:01:53 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -400,7 +400,7 @@ sub StudentDataSelect {
     my $Str = "\n";
     $Str .= '<select name="'.$elementname.'" ';
     if ($status ne 'single') {
-        $Str .= 'multiple="true" ';
+        $Str .= 'multiple="multiple" ';
     }
     $Str .= 'size="'.$numvisible.'" >'."\n";
     #
@@ -456,11 +456,20 @@ sub selected_sequences_with_assessments
         return ('Can not open Coursemap');
     }
     #
-    my @sequences = $navmap->retrieveResources(undef,
+    my $mapurl;
+    if (&Apache::loncommon::needs_gci_custom()) {
+        my $cid = $env{'request.course.id'};
+        if ($cid) {
+            $mapurl = '/uploaded/'.$env{'course.'.$cid.'.domain'}.'/'.$env{'course.'.$cid.'.num'}.'/default_1261144274.sequence';
+        }
+    }
+    my @sequences = $navmap->retrieveResources($mapurl,
                                                sub { shift->is_map(); },1,0,1);
-    my $toplevelseq = $navmap->getById('0.0');
-    if (!grep(/^\Q$toplevelseq\E$/,@sequences)) {
-        unshift(@sequences,$toplevelseq);
+    unless (&Apache::loncommon::needs_gci_custom()) {
+        my $toplevelseq = $navmap->getById('0.0');
+        if (!grep(/^\Q$toplevelseq\E$/,@sequences)) {
+            unshift(@sequences,$toplevelseq);
+        }
     }
 
     my @sequences_with_assessments;
@@ -501,16 +510,18 @@ sub map_select {
     my $form = "\n";
     $form .= '<select name="'.$elementname.'" ';
     if ($status ne 'single') {
-        $form .= 'multiple="true" ';
+        $form .= 'multiple="multiple" ';
     }
     $form .= 'size="'.$numvisible.'" >'."\n";
-    #
-    # Put in option for 'all'
-    $form .= '    <option value="all" ';
-    if ($selected_maps[0] eq 'all') {
-        $form .= 'selected ';
+    unless (&Apache::loncommon::needs_gci_custom()) {
+        #
+        # Put in option for 'all'
+        $form .= '    <option value="all" ';
+        if ($selected_maps[0] eq 'all') {
+            $form .= 'selected ';
+        }
+        $form .= ">all</option>\n";
     }
-    $form .= ">all</option>\n";
     #
     # Loop through the sequences
     my @sequences = &selected_sequences_with_assessments('all');
@@ -522,10 +533,14 @@ sub map_select {
     }
     foreach my $seq (@sequences){
         $form .= '    <option value="'.$seq->symb.'" ';
-        foreach (@selected_maps) {
-            if ($seq->symb eq $_) {
-                $form .= 'selected ';
-                last;
+        if ((&Apache::loncommon::needs_gci_custom()) && (@selected_maps == 1)) {
+            $form .= 'selected ';
+        } else {
+            foreach (@selected_maps) {
+                if ($seq->symb eq $_) {
+                    $form .= 'selected ';
+                    last;
+                }
             }
         }
         $form .= '>'.$seq->compTitle."</option>\n";
@@ -550,7 +565,7 @@ sub SectionSelect {
     my $Str = "\n";
     $Str .= '<select name="'.$elementname.'" ';
     if ($status ne 'single') {
-        $Str .= 'multiple="true" ';
+        $Str .= 'multiple="multiple" ';
     }
     $Str .= 'size="'.$numvisible.'" >'."\n";
     #
@@ -585,7 +600,7 @@ sub GroupSelect {
     my $Str = "\n";
     $Str .= '<select name="'.$elementname.'" ';
     if ($status ne 'single') {
-        $Str .= 'multiple="true" ';
+        $Str .= 'multiple="multiple" ';
     }
     $Str .= 'size="'.$numvisible.'" >'."\n";
     #
@@ -714,7 +729,7 @@ sub DisplayClasslist {
                 $Str .= '&sort='.&escape($env{'form.sort'});
                 $Str .= '&SelectedStudent=';
                 $Str .= &escape($sname).'">';
-                $Str .= $student->{$field}.'&nbsp';
+                $Str .= $student->{$field}.'&nbsp;';
                 $Str .= '</a>';
             } elsif ($field eq 'status') {
                 $Str .= &mt($student->{$field});
@@ -766,7 +781,19 @@ sub CreateMainMenu {
              icon => 'coprplot.png',
              linktext => ('Correct Problems Plot'),
              linktitle => ('Display a histogram of student performance in the course.')},
-         ]},
+         ]});
+    if (&Apache::loncommon::needs_gci_custom()) {
+        push(@reports,
+        {categorytitle => 'Reports',
+         items => [
+            {url => '/adm/statistics?reportSelected=student_submission_reports',
+                         permission => 'F',
+             icon => 'edit-copy.png',
+             linktext => ('Student Submission Reports'),
+             linktitle => ('Prepare reports of student submissions.')},
+         ]});
+    } else {
+        push(@reports,
         {categorytitle => 'Reports',
          items => [
             {url => '/adm/statistics?reportSelected=student_submission_reports',
@@ -781,6 +808,7 @@ sub CreateMainMenu {
 			 linktext => ('Survey Reports'),
              linktitle => ('Prepare reports on survey results.')},
          ]});
+    }
     
 return &Apache::lonhtmlcommon::generate_menu(@reports);
  
@@ -817,6 +845,32 @@ sub handler {
     &Apache::loncommon::content_type($r,'text/html');
     $r->send_http_header;
     if ($r->header_only) { return OK; }
+    my $gcicustom = &Apache::loncommon::needs_gci_custom();
+    if ($gcicustom) {
+        my $now = time;
+        my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
+        my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
+        my $courseopt=&Apache::lonnet::get_courseresdata($cnum,$cdom);
+        my $duedate = $courseopt->{$env{'request.course.id'}.'.0.duedate'};
+        if ((!$duedate) || ($duedate > $now)) {
+            my $brcrum = [{href=> '/adm/statistics',
+                           text=> 'Statistics',}];
+            my $args = {bread_crumbs           => $brcrum,
+                        bread_crumbs_component => 'Statistics Main Page'};
+            $r->print(&Apache::loncommon::start_page('Course Statistics',undef,$args));
+            $r->print('<h3>'.&mt('Display of statistics').'</h3>');
+            if ($duedate > $now) { 
+                $r->print('<p>'.&mt('Aggregate test performance data will be available after the Concept Test end date: [_1].',
+                         &Apache::lonlocal::locallocaltime($duedate)).'</p>');
+            } else {
+                $r->print('<p>'.
+                          &mt('Aggregate test performance data unavailable without definition of an end date for the Concept Test.').'</p>');
+            }
+            $r->print(&Apache::loncommon::end_page());
+            return OK;
+        }
+    }
+
     #
     # Extract form elements from query string
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
@@ -861,7 +915,7 @@ ENDSTYLE
                      .'</p>');
             $r->print('<p>'.
                       &mt('Course Statistics and Charts cannot be '.
-                          'retrieved until the database is restarted.  '.
+                          'retrieved until the database is restarted. '.
                           'Your data is intact but cannot be displayed '.
                           'at this time.').'</p>');
             $r->print(&Apache::loncommon::end_page());
@@ -902,9 +956,9 @@ ENDSTYLE
             &Apache::lonsubmissiontimeanalysis::BuildSubmissionTimePage($r,$c);
         } elsif($GoToPage eq 'student_submission_reports') {
             &Apache::lonhtmlcommon::add_breadcrumb
-                ({href=>
-                  '/adm/statistics?reportselected=student_submission_reports',
-                  text=>'Student Submission Reports'});
+            ({href=>
+              '/adm/statistics?reportselected=student_submission_reports',
+              text=>'Student Submission Reports'});
             &Apache::lonstudentsubmissions::BuildStudentSubmissionsPage($r,$c);
         } elsif($GoToPage eq 'survey_reports') {
             &Apache::lonhtmlcommon::add_breadcrumb
@@ -922,7 +976,11 @@ ENDSTYLE
             &Apache::lonhtmlcommon::add_breadcrumb
                 ({href=>'/adm/statistics?reportselected=student_assessment',
                   text=>'Chart'});
-            &Apache::lonstudentassessment::BuildStudentAssessmentPage($r,$c);
+            if ($gcicustom) {
+                $r->print(&mt('Only aggregate performance data are available for Concept Tests.'));  
+            } else {
+                &Apache::lonstudentassessment::BuildStudentAssessmentPage($r,$c);
+            }
         } elsif($GoToPage eq 'grading_analysis') {
             &Apache::lonhtmlcommon::add_breadcrumb
                 ({href=>'/adm/statistics?reportselected=grading_anaylsis',