--- loncom/interface/statistics/lonproblemanalysis.pm 2014/02/27 03:11:14 1.142.2.4 +++ loncom/interface/statistics/lonproblemanalysis.pm 2020/11/12 00:15:27 1.142.2.5 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: lonproblemanalysis.pm,v 1.142.2.4 2014/02/27 03:11:14 raeburn Exp $ +# $Id: lonproblemanalysis.pm,v 1.142.2.5 2020/11/12 00:15:27 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -90,7 +90,7 @@ sub BuildProblemAnalysisPage { &Apache::lonstathelpers::manage_caches($r,'Statistics','stats_status'); $r->rflush(); # - my $problem_types = '(option|radiobutton|numerical)'; + my $problem_types = &analyzable_types(); if (exists($env{'form.problemchoice'}) && ! exists($env{'form.SelectAnother'})) { foreach my $button (@SubmitButtons) { @@ -116,21 +116,9 @@ sub BuildProblemAnalysisPage { $r->rflush(); # # Determine which problem we are to analyze - my $current_problem = &Apache::lonstathelpers::get_target_from_id - ($env{'form.problemchoice'}); - # - my ($navmap,$prev,$curr,$next) = - &Apache::lonstathelpers::get_prev_curr_next($current_problem, - $problem_types, - 'response', - ); - if (exists($env{'form.PrevProblemAnalysis'}) && defined($prev)) { - $current_problem = $prev; - } elsif (exists($env{'form.NextProblemAnalysis'}) && defined($next)) { - $current_problem = $next; - } else { - $current_problem = $curr; - } + my ($navmap,$current_problem) = &get_current_problem(); # need to retrieve $navmap + # to support $resource->* calls + # for src and compTitle (below) # # Store the current problem choice and send it out in the form $env{'form.problemchoice'} = @@ -191,6 +179,28 @@ sub BuildProblemAnalysisPage { } } +sub analyzable_types { + return '(option|radiobutton|numerical)'; +} + +sub get_current_problem { + my ($problem_types) = @_; + my $current_problem = &Apache::lonstathelpers::get_target_from_id + ($env{'form.problemchoice'}); + my ($navmap,$prev,$curr,$next) = + &Apache::lonstathelpers::get_prev_curr_next($current_problem, + $problem_types, + 'response'); + if (exists($env{'form.PrevProblemAnalysis'}) && ($prev ne '')) { + $current_problem = $prev; + } elsif (exists($env{'form.NextProblemAnalysis'}) && ($next ne '')) { + $current_problem = $next; + } else { + $current_problem = $curr; + } + return ($navmap,$current_problem); +} + ######################################################### ######################################################### ##