--- loncom/interface/statistics/lonproblemanalysis.pm 2014/02/03 18:50:58 1.145
+++ loncom/interface/statistics/lonproblemanalysis.pm 2020/11/10 19:28:32 1.147
@@ -1,6 +1,6 @@
# The LearningOnline Network with CAPA
#
-# $Id: lonproblemanalysis.pm,v 1.145 2014/02/03 18:50:58 bisitz Exp $
+# $Id: lonproblemanalysis.pm,v 1.147 2020/11/10 19:28:32 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -92,7 +92,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) {
@@ -118,21 +118,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'} =
@@ -193,6 +181,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);
+}
+
#########################################################
#########################################################
##
@@ -1949,12 +1959,12 @@ sub CreateInterface {
$showprob_checkbox.' '.&mt('Show problem').
'
';
##
- my $analyze_selector = '