--- loncom/interface/statistics/lonsubmissiontimeanalysis.pm 2004/01/19 21:31:08 1.10
+++ loncom/interface/statistics/lonsubmissiontimeanalysis.pm 2004/01/20 15:51:06 1.11
@@ -1,6 +1,6 @@
# The LearningOnline Network with CAPA
#
-# $Id: lonsubmissiontimeanalysis.pm,v 1.10 2004/01/19 21:31:08 matthew Exp $
+# $Id: lonsubmissiontimeanalysis.pm,v 1.11 2004/01/20 15:51:06 matthew Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -45,10 +45,14 @@ my $plotcolors = ['#33ff00',
];
my @SubmitButtons = (
- { name => 'ProblemAnalyis',
+ { name => 'PrevProblemAnalysis',
+ text => 'Previous Problem' },
+ { name => 'ProblemAnalysis',
text => 'Analyze Problem Again' },
+ { name => 'NextProblemAnalysis',
+ text => 'Next Problem' },
{ name => 'SelectAnother',
- text => 'Choose a different resource' },
+ text => 'Choose a different Problem' },
);
sub BuildSubmissionTimePage {
@@ -92,23 +96,40 @@ sub BuildSubmissionTimePage {
&mt('Graph Problem Submission Times').'" />');
$r->print(' 'x5);
$r->print('
'.&mt('Please select a problem to analyze').'
');
- $r->print(&ProblemSelector());
+ $r->print(&Apache::lonstathelpers::ProblemSelector('.'));
} else {
foreach my $button (@SubmitButtons) {
$r->print('{'text'}).'" />');
$r->print(' 'x5);
}
+ #
+ # Determine which problem we are to analyze
+ my $current_problem = &Apache::lonstathelpers::get_target_from_id
+ ($ENV{'form.problemchoice'});
+ #
+ my ($prev,$curr,$next) =
+ &Apache::lonstathelpers::get_prev_curr_next($current_problem,
+ '.',
+ 'part');
+ if (exists($ENV{'form.PrevProblemAnalysis'}) && defined($prev)) {
+ $current_problem = $prev;
+ } elsif (exists($ENV{'form.NextProblemAnalysis'}) && defined($next)) {
+ $current_problem = $next;
+ } else {
+ $current_problem = $curr;
+ }
+ #
+ # Store the current problem choice and send it out in the form
+ $ENV{'form.problemchoice'} =
+ &Apache::lonstathelpers::make_target_id($current_problem);
$r->print('');
#
$r->print('
');
- #
- my ($symb,$part) = &get_problem_symb(
- &Apache::lonnet::unescape($ENV{'form.problemchoice'}));
$r->rflush();
#
- my $resource = &get_resource_from_symb($symb);
+ my $resource = $current_problem->{'resource'};
if (! defined($resource)) {
$r->print('resource is undefined');
} else {
@@ -117,7 +138,8 @@ sub BuildSubmissionTimePage {
$r->rflush();
$r->print(&Apache::lonstathelpers::render_resource($resource));
$r->rflush();
- $r->print(&analyze_times($r,$resource,\@Students,$part));
+ $r->print(&analyze_times($r,$resource,\@Students,
+ $current_problem->{'part'}));
}
$r->print('
');
}
@@ -345,86 +367,6 @@ sub CreateInterface {
return $Str;
}
-sub ProblemSelector {
- my $Str;
- $Str = "\n";
- return $Str;
-}
-
-#########################################################
-#########################################################
-##
-## Misc functions (ought to be put in a module)
-##
-#########################################################
-#########################################################
-sub get_problem_symb {
- my $problemstring = shift();
- my ($symb,$partid) = ($problemstring=~ /^(.*):([^:]*)$/);
- return ($symb,$partid);
-}
-
-sub get_resource_from_symb {
- my ($symb) = @_;
- foreach my $seq (&Apache::lonstatistics::Sequences_with_Assess()) {
- foreach my $res (@{$seq->{'contents'}}) {
- if ($res->{'symb'} eq $symb) {
- return $res;
- }
- }
- }
- return undef;
-}
-
1;
__END__