--- loncom/interface/lonstatistics.pm	2010/01/06 19:41:49	1.148.2.2
+++ loncom/interface/lonstatistics.pm	2013/04/11 15:49:49	1.158
@@ -1,6 +1,6 @@
 # The LearningOnline Network with CAPA
 #
-# $Id: lonstatistics.pm,v 1.148.2.2 2010/01/06 19:41:49 raeburn Exp $
+# $Id: lonstatistics.pm,v 1.158 2013/04/11 15:49:49 bisitz Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -64,6 +64,7 @@ use Apache::lonpercentage;
 use Apache::lonstudentsubmissions();
 use Apache::lonsurveyreports();
 use Apache::longradinganalysis();
+use Apache::lonquickgrades();
 use LONCAPA;
 
 #
@@ -405,25 +406,25 @@ sub StudentDataSelect {
     $Str .= 'size="'.$numvisible.'" >'."\n";
     #
     # Deal with 'all'
-    $Str .= '    <option value="all" ';
+    $Str .= '    <option value="all"';
     foreach (@SelectedStudentData) {
         if ($_ eq 'all') {
-            $Str .= 'selected ';
+            $Str .= ' selected="selected"';
             last;
         }
     }
-    $Str .= ">all</option>\n";
+    $Str .= '>'.&mt('all')."</option>\n";
     #
     # Loop through the student data fields
     foreach my $item (@StudentDataOrder) {
-        $Str .= '    <option value="'.$item.'" ';
+        $Str .= '    <option value="'.$item.'"';
         foreach (@SelectedStudentData) {
             if ($item eq $_ ) {
-                $Str .= 'selected ';
+                $Str .= ' selected="selected"';
                 last;
             }
         }
-        $Str .= '>'.$item."</option>\n";
+        $Str .= '>'.&mt($item)."</option>\n";
     }
     $Str .= "</select>\n";
     return $Str;
@@ -506,9 +507,9 @@ sub map_select {
     $form .= 'size="'.$numvisible.'" >'."\n";
     #
     # Put in option for 'all'
-    $form .= '    <option value="all" ';
+    $form .= '    <option value="all"';
     if ($selected_maps[0] eq 'all') {
-        $form .= 'selected ';
+        $form .= ' selected="selected"';
     }
     $form .= ">all</option>\n";
     #
@@ -521,10 +522,10 @@ sub map_select {
         $navmap = shift(@sequences);
     }
     foreach my $seq (@sequences){
-        $form .= '    <option value="'.$seq->symb.'" ';
+        $form .= '    <option value="'.$seq->symb.'"';
         foreach (@selected_maps) {
             if ($seq->symb eq $_) {
-                $form .= 'selected ';
+                $form .= ' selected="selected"';
                 last;
             }
         }
@@ -556,10 +557,10 @@ sub SectionSelect {
     #
     # Loop through the sequences
     foreach my $s (@Sections) {
-        $Str .= '    <option value="'.$s.'" ';
+        $Str .= '    <option value="'.$s.'"';
         foreach (&get_selected_sections()) {
             if ($s eq $_) {
-                $Str .= 'selected ';
+                $Str .= ' selected="selected"';
                 last;
             }
         }
@@ -591,10 +592,10 @@ sub GroupSelect {
     #
     # Loop through the groups
     foreach my $s (@Groups) {
-        $Str .= '    <option value="'.$s.'" ';
+        $Str .= '    <option value="'.$s.'"';
         foreach my $group (&get_selected_groups()) {
             if ($s eq $group) {
-                $Str .= 'selected ';
+                $Str .= ' selected="selected"';
                 last;
             }
         }
@@ -614,7 +615,7 @@ sub DisplayClasslist {
     # Output some of the standard interface components
     my $Str;
     $Str .= &Apache::lonhtmlcommon::breadcrumbs('Select One Student');
-    $Str .= '<p><table cellspacing="5">'."\n";
+    $Str .= '<table cellspacing="5">'."\n";
     $Str .= '<tr>';
     $Str .= '<th align="center"><b>'.&mt('Sections').'</b></th>';
     $Str .= '<th align="center"><b>'.&mt('Groups').'</b></th>';
@@ -632,7 +633,7 @@ sub DisplayClasslist {
         '</td>';
     
     $Str .= '</tr>'.$/;
-    $Str .= '</table></p>';
+    $Str .= '</table>';
     $Str .= '<input type="submit" name="selectstudent" value="'.
         &mt('Update Display').'" />';
     $r->print($Str);
@@ -690,13 +691,13 @@ sub DisplayClasslist {
     }
 
     $Str .= '<h2>'.&mt('Select One Student').'</h2>'
-           .'<p>'.&mt("Click on a student's name or username to view their chart").'</p>'
+           .'<p>'.&mt("Click on a student's name or username to view their chart.").'</p>'
            .&Apache::loncommon::start_data_table()
            .&Apache::loncommon::start_data_table_header_row();
     foreach my $field (@Fields) {
         $Str .= '<th><a href="/adm/statistics?'.
-            'reportSelected=student_assessment&'.
-            'selectstudent=1&'.
+            'reportSelected=student_assessment&amp;'.
+            'selectstudent=1&amp;'.
             'sort='.$field.'">'.&mt($field).
             '</a></th>';
     }
@@ -711,15 +712,19 @@ sub DisplayClasslist {
             if ($field eq 'fullname' || $field eq 'username') {
                 $Str .= '<a href="/adm/statistics?reportSelected=';
                 $Str .= &escape('student_assessment');
-                $Str .= '&sort='.&escape($env{'form.sort'});
-                $Str .= '&SelectedStudent=';
+                $Str .= '&amp;sort='.&escape($env{'form.sort'});
+                $Str .= '&amp;SelectedStudent=';
                 $Str .= &escape($sname).'">';
-                $Str .= $student->{$field}.'&nbsp;';
+                $Str .= $student->{$field};
                 $Str .= '</a>';
             } elsif ($field eq 'status') {
                 $Str .= &mt($student->{$field});
             } else {
-                $Str .= $student->{$field};
+                if ($student->{$field} eq 'none') {
+                    $Str .= &mt('none')
+                } else {
+                    $Str .= $student->{$field};
+                }
             }
             $Str .= '</td>';
         }
@@ -749,7 +754,7 @@ sub CreateMainMenu {
        
             {url => '/adm/statistics?reportSelected=problem_analysis',
 			 permission => 'F',
-             icon => 'edit-find.png',
+             icon => 'prob_ana.png',
              linktext => ('Detailed Problem Analysis'),
              linktitle => ('Detailed statistics and graphs of student performance on problems.')},
          ]},
@@ -777,7 +782,7 @@ sub CreateMainMenu {
                     
             {url => '/adm/statistics?reportSelected=survey_reports',
 			 permission => 'F',
-             icon => 'docs.png',
+             icon => 'survey_rep.png',
 			 linktext => ('Survey Reports'),
              linktitle => ('Prepare reports on survey results.')},
          ]});
@@ -792,14 +797,6 @@ sub handler {
     my $r=shift;
     my $c = $r->connection();
     #
-    # Check for overloading
-    my $loaderror=&Apache::lonnet::overloaderror($r);
-    if ($loaderror) { return $loaderror; }
-    $loaderror=
-       &Apache::lonnet::overloaderror($r,
-         $env{'course.'.$env{'request.course.id'}.'.home'});
-    if ($loaderror) { return $loaderror; }
-    #
     # Check for access
     if (! &Apache::lonnet::allowed('vgr',$env{'request.course.id'})) {
         $env{'user.error.msg'}=
@@ -817,28 +814,6 @@ 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)) {
-            $r->print(&Apache::loncommon::start_page("Course Statistics"));
-            $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'},
@@ -868,15 +843,16 @@ ENDSTYLE
                                             bug=>'Statistics and Charts'});
     if (! exists($env{'form.reportSelected'}) || 
         $env{'form.reportSelected'} eq '') {
-        $r->print(&Apache::lonhtmlcommon::breadcrumbs('Statistics Main Page').
-                  &CreateMainMenu());
+        $r->print(&Apache::lonhtmlcommon::breadcrumbs('Statistics Main Page'));
+        &Apache::lonquickgrades::startGradeScreen($r,'statistics');
+        $r->print(&CreateMainMenu());
     } else {
     #
         if (! &Apache::lonmysql::verify_sql_connection()) {
             my $serveradmin = $r->dir_config('lonAdmEMail');
-            $r->print('<h2 class="LC_error">'.
+            $r->print('<p class="LC_error">'.
                       &mt('Unable to connect to database!').
-                      '</h2>');
+                      '</p>');
             $r->print('<p>'
                      .&mt('Please notify the server administrator [_1]',
                          ,'<b>'.$serveradmin.'</b>')
@@ -895,15 +871,17 @@ ENDSTYLE
             &Apache::loncoursedata::delete_caches($env{'requres.course.id'});
         }
         #
+        my $GoToPage = $env{'form.reportSelected'};
+        #
         # Begin form output
         $r->print('<form name="Statistics" ');
+        if ($GoToPage eq 'student_submission_reports') {
+            $r->print('onsubmit="return checkanon();" ');
+        }
         $r->print('method="post" action="/adm/statistics">');
         $r->rflush();
-        #
-        my $GoToPage = $env{'form.reportSelected'};
-        #
         $r->print('<input type="hidden" name="reportSelected" value="'.
-                  $GoToPage.'">');
+                  $GoToPage.'" />');
         if($GoToPage eq 'activitylog') {
 #        &Apache::lonproblemstatistics::Activity();
         } elsif($GoToPage eq 'problem_statistics') {
@@ -944,11 +922,7 @@ ENDSTYLE
             &Apache::lonhtmlcommon::add_breadcrumb
                 ({href=>'/adm/statistics?reportselected=student_assessment',
                   text=>'Chart'});
-            if ($gcicustom) {
-                $r->print(&mt('Only aggregate performance data is available for Concept Tests.'));  
-            } else {
-                &Apache::lonstudentassessment::BuildStudentAssessmentPage($r,$c);
-            }
+            &Apache::lonstudentassessment::BuildStudentAssessmentPage($r,$c);
         } elsif($GoToPage eq 'grading_analysis') {
             &Apache::lonhtmlcommon::add_breadcrumb
                 ({href=>'/adm/statistics?reportselected=grading_anaylsis',
@@ -958,6 +932,7 @@ ENDSTYLE
         #
         $r->print("</form>\n");
     }
+    &Apache::lonquickgrades::endGradeScreen($r);
     $r->print(&Apache::loncommon::end_page());
     $r->rflush();
     #