--- loncom/interface/statistics/lonstathelpers.pm 2004/06/04 21:42:18 1.12 +++ loncom/interface/statistics/lonstathelpers.pm 2004/06/15 14:22:45 1.13 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: lonstathelpers.pm,v 1.12 2004/06/04 21:42:18 matthew Exp $ +# $Id: lonstathelpers.pm,v 1.13 2004/06/15 14:22:45 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -224,7 +224,7 @@ sub get_target_from_id { =pod -=item &get_prev_curr_next($target) +=item &get_prev_curr_next($target,$AcceptableResponseTypes,$granularity) Determine the problem parts or responses preceeding and following the current resource. @@ -232,7 +232,7 @@ current resource. Inputs: $target (see &Apache::lonstathelpers::get_target_from_id()) $AcceptableResponseTypes, regular expression matching acceptable response types, - $granularity, either 'part' or 'response' + $granularity, either 'part', 'response', or 'part_survey' Returns: three hash references, $prev, $curr, $next, which refer to the preceeding, current, or following problem parts or responses, depending @@ -260,7 +260,13 @@ sub get_prev_curr_next { next if ($res->{'type'} ne 'assessment'); foreach my $part (@{$res->{'parts'}}) { my $partdata = $res->{'partdata'}->{$part}; - if ($granularity eq 'part') { + if ($granularity eq 'part_survey' && $partdata->{'Survey'}){ + push (@Resource, + { symb => $res->{symb}, + part => $part, + resource => $res, + } ); + } elsif ($granularity eq 'part') { push (@Resource, { symb => $res->{symb}, part => $part, @@ -290,7 +296,7 @@ sub get_prev_curr_next { my $curr_idx; for ($curr_idx=0;$curr_idx<$#Resource;$curr_idx++) { my $curr_item = $Resource[$curr_idx]; - if ($granularity eq 'part') { + if ($granularity eq 'part' || $granularity eq 'part_survey') { if ($curr_item->{'symb'} eq $target->{'symb'} && $curr_item->{'part'} eq $target->{'part'}) { last; @@ -305,7 +311,7 @@ sub get_prev_curr_next { } } my $curr_item = $Resource[$curr_idx]; - if ($granularity eq 'part') { + if ($granularity eq 'part' || $granularity eq 'part_survey') { if ($curr_item->{'symb'} ne $target->{'symb'} || $curr_item->{'part'} ne $target->{'part'}) { # bogus symb - return nothing