--- loncom/interface/statistics/lonstathelpers.pm 2020/10/24 19:37:20 1.76.2.5 +++ loncom/interface/statistics/lonstathelpers.pm 2020/08/31 14:36:19 1.77 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: lonstathelpers.pm,v 1.76.2.5 2020/10/24 19:37:20 raeburn Exp $ +# $Id: lonstathelpers.pm,v 1.77 2020/08/31 14:36:19 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -85,7 +85,7 @@ sub render_resource { ## ## Render the problem my ($base) = ($resource->src =~ m|^(.*/)[^/]*$|); - $base=&Apache::lonnet::absolute_url().$base; + $base="http://".$ENV{'SERVER_NAME'}.$base; my ($src,$symb)=($resource->link,&escape($resource->shown_symb)); my $rendered_problem = &Apache::lonnet::ssi_body($src.'?symb='.$symb); $rendered_problem =~ s/<\s*form\s*/retrieveResources($sequence, - sub { shift->is_problem(); }, - 0,0,0); + my ($navmap,$sequence,$include_tools) = @_; + my @resources; + if ($include_tools) { + @resources = $navmap->retrieveResources($sequence, + sub { shift->is_gradable(); }, + 0,0,0); + } else { + @resources = $navmap->retrieveResources($sequence, + sub { shift->is_problem(); }, + 0,0,0); + } return @resources; } @@ -158,7 +165,7 @@ sub problem_selector { return $navmap if (! ref($navmap)); # error foreach my $seq (@sequences) { my $seq_str = ''; - foreach my $res (&get_resources($navmap,$seq)) { + foreach my $res (&get_resources($navmap,$seq,$include_tools)) { if ($res->src() eq '/res/lib/templates/simpleproblem.problem') { next if (grep(/^placeholder$/,@{$res->parts})); } @@ -181,7 +188,7 @@ sub problem_selector { $rowspan = ' rowspan="'.$totalresps.'"'; } $seq_str .= &Apache::loncommon::start_data_table_row(). - ''. + ''. ''; my $link = $res->link.'?symb='.&escape($res->shown_symb); @@ -190,16 +197,20 @@ sub problem_selector { } my %partsseen; foreach my $part (@{$res->parts}) { - my @response_ids = $res->responseIds($part); - my @response_types = $res->responseType($part); + my (@response_ids,@response_types); + if ($res->is_tool) { + @response_ids = (); + @response_types = ('tool'); + } else { + @response_ids = $res->responseIds($part); + @response_types = $res->responseType($part); + } for (my $i=0;$i 1) { - $resprowspan = ' rowspan="'.scalar(@response_ids).'"'; - } - $seq_str .= ''. + $seq_str .= ''. $parttitle.''; $partsseen{$part} = scalar(@response_ids); } @@ -249,8 +256,8 @@ sub problem_selector { $seq_str .= (' 'x2). ''.&mt('view').''; $seq_str .= "". &Apache::loncommon::end_data_table_row()."\n"; + $rb_count++; } - $rb_count++; } } } @@ -277,15 +284,6 @@ sub problem_selector { } } $Str .= &Apache::loncommon::end_data_table().&Apache::loncommon::end_scrollbox()."\n"; - if (!$rb_count) { - if ($byres) { - $Str = '

'.&mt('No gradable problems found').'

'; - } elsif ($AcceptedResponseTypes eq '.') { - $Str = '

'.&mt('No problems found').'

'; - } else { - $Str = '

'.&mt('No analyzable problems found').'

'; - } - } return $Str; }