--- loncom/interface/statistics/lonstathelpers.pm 2009/05/06 16:19:42 1.59 +++ loncom/interface/statistics/lonstathelpers.pm 2011/11/18 22:35:33 1.59.12.2 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: lonstathelpers.pm,v 1.59 2009/05/06 16:19:42 bisitz Exp $ +# $Id: lonstathelpers.pm,v 1.59.12.2 2011/11/18 22:35:33 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -239,11 +239,31 @@ sub MultipleProblemSelector { # Header $Str .= <<"END"; END $Str .= - ''.&mt('Select All').''. + ''. (' 'x4). - ''.&mt('Unselect All').''; + ''; $Str .= $/.''.$/; - my $iterator = $navmap->getIterator(undef, undef, undef, 1); - my $sequence_string; + my ($iterator,$sequence_string,@Accumulator); my $seq_id = 0; - my @Accumulator = (&new_accumulator($env{'course.'.$cid.'.description'}, - '', - '', - $seq_id++, - $inputname)); + if (&Apache::loncommon::needs_gci_custom()) { + my $cdom = $env{'course.'.$cid.'.domain'}; + my $cnum = $env{'course.'.$cid.'.num'}; + my $mapurl = "/uploaded/$cdom/$cnum/default_1261144274.sequence"; + my $map = $navmap->getResourceByUrl($mapurl); + my $firstResource = $map->map_start(); + my $lastResource = $map->map_finish(); + $iterator = $navmap->getIterator($firstResource,$lastResource,sub { $_[0]->is_problem() },1); + @Accumulator = (&new_accumulator($map->compTitle, + $map->src, + $map->symb, + $seq_id++, + $inputname)); + } else { + $iterator = $navmap->getIterator(undef, undef, undef, 1); + @Accumulator = (&new_accumulator($env{'course.'.$cid.'.description'}, + '', + '', + $seq_id++, + $inputname)); + } my @Sequence_Data; while (my $curRes = $iterator->next()) { if ($curRes == $iterator->END_MAP) { @@ -288,9 +323,12 @@ END $seq_id++, $inputname)); } elsif ($curRes->is_problem) { + my $is_selected; + if (($env{'form.allproblems'}) || (exists($selected->{$curRes->symb}))) { + $is_selected = 1; + } if (@Accumulator && $Accumulator[-1] ne '') { - &{$Accumulator[-1]}($curRes, - exists($selected->{$curRes->symb})); + &{$Accumulator[-1]}($curRes,$is_selected); } } }