--- loncom/interface/lonstatistics.pm	2014/02/26 01:18:49	1.160
+++ loncom/interface/lonstatistics.pm	2020/11/10 19:28:32	1.165
@@ -1,6 +1,6 @@
 # The LearningOnline Network with CAPA
 #
-# $Id: lonstatistics.pm,v 1.160 2014/02/26 01:18:49 raeburn Exp $
+# $Id: lonstatistics.pm,v 1.165 2020/11/10 19:28:32 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -366,7 +366,7 @@ sub section_or_group_text {
 
 sub get_students {
     if (! @Students) {
-        &PrepareClasslist()
+        &PrepareClasslist();
     }
     return @Students;
 }
@@ -466,7 +466,7 @@ sub selected_sequences_with_assessments
 
     my @sequences_with_assessments;
     foreach my $sequence (@sequences) {
-	if ($navmap->hasResource($sequence,sub { shift->is_problem(); },0,1)){
+	if ($navmap->hasResource($sequence,sub { shift->is_gradable(); },0,1)){
             push(@sequences_with_assessments,$sequence);
         }
     }
@@ -547,6 +547,11 @@ sub SectionSelect {
         &PrepareClasslist()
     }
     #
+    # Make sure course's student table is up to date
+    if (@Sections) {
+        &Apache::loncoursedata::ensure_current_sections();
+    }
+    #
     # Build the form element
     my $Str = "\n";
     $Str .= '<select name="'.$elementname.'" ';
@@ -582,6 +587,14 @@ sub GroupSelect {
         &PrepareClasslist();
     }
     #
+    # Make sure course's groupnames and studentgroups tables
+    # are up to date.
+    #
+    if (@Groups) {
+        &Apache::loncoursedata::ensure_current_groups();
+        &Apache::loncoursedata::ensure_current_students_groups();
+    }
+    #
     # Build the form element
     my $Str = "\n";
     $Str .= '<select name="'.$elementname.'" ';
@@ -819,6 +832,8 @@ sub handler {
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
                                             ['sort','reportSelected',
                                              'SelectedStudent']);
+    my $GoToPage = $env{'form.reportSelected'};
+ 
     #
     # Give the LON-CAPA page header
     my $style = <<ENDSTYLE;
@@ -829,9 +844,38 @@ sub handler {
     td.essay          { border: 1px solid gray; }
 </style>
 ENDSTYLE
-      
+
+    my $head_extra = $style;
+    if (($env{'form.reportSelected'} eq 'student_submission_reports') &&
+        ($env{'form.renderprob'})) {
+        my @Symbs = &Apache::lonstathelpers::get_selected_symbs('problemchoice');
+        if (scalar(@Symbs) == 1) {
+            $head_extra .= &Apache::loncommon::css_links($Symbs[0]);
+        }
+    } elsif ($env{'form.reportSelected'} eq 'submissiontime_analysis') {
+        my ($navmap,$current_problem) =
+            &Apache::lonsubmissiontimeanalysis::get_current_problem();
+        if (ref($current_problem) eq 'HASH') {
+            my $symb = $current_problem->{'symb'};
+            if ($symb) {
+                $head_extra .= &Apache::loncommon::css_links($symb);
+            }
+        }
+    } elsif (($env{'form.reportSelected'} eq 'problem_analysis') &&
+              ($env{'form.show_prob'})) {
+        my $problem_types = &Apache::lonproblemanalysis::analyzable_types();
+        my ($navmap,$current_problem) =
+            &Apache::lonproblemanalysis::get_current_problem($problem_types);
+        if (ref($current_problem) eq 'HASH') {
+            my $symb = $current_problem->{'symb'};
+            my $res = $current_problem->{'resource'};
+            if ($symb) {
+                $head_extra .= &Apache::loncommon::css_links($symb);
+            }
+        }
+    }
     $r->print(&Apache::loncommon::start_page('Course Statistics and Charts',
-					     $style));
+					     $head_extra));
     $r->rflush();
     # 
     # Either print out a menu for them or send them to a report
@@ -841,8 +885,7 @@ ENDSTYLE
                                             text =>'Statistics',
                                             faq=>139,
                                             bug=>'Statistics and Charts'});
-    if (! exists($env{'form.reportSelected'}) || 
-        $env{'form.reportSelected'} eq '') {
+    if ($GoToPage eq '') {
         $r->print(&Apache::lonhtmlcommon::breadcrumbs('Statistics Main Page'));
         &Apache::lonquickgrades::startGradeScreen($r,'statistics');
         $r->print(&CreateMainMenu());
@@ -868,11 +911,9 @@ ENDSTYLE
         #
         # Clean out the caches
         if (exists($env{'form.ClearCache'})) {
-            &Apache::loncoursedata::delete_caches($env{'requres.course.id'});
+            &Apache::loncoursedata::delete_caches($env{'request.course.id'});
         }
         #
-        my $GoToPage = $env{'form.reportSelected'};
-        #
         # Begin form output
         $r->print('<form name="Statistics" ');
         if ($GoToPage eq 'student_submission_reports') {