--- 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') {