Diff for /loncom/interface/statistics/lonstathelpers.pm between versions 1.76.2.3 and 1.80

version 1.76.2.3, 2020/09/07 02:58:25 version 1.80, 2020/10/08 12:02:07
Line 73  use LONCAPA; Line 73  use LONCAPA;
   
 Input: a navmaps resource  Input: a navmaps resource
   
 Retunrs: a scalar containing html for a rendering of the problem  Returns: a scalar containing html for a rendering of the problem
 within a table.  within a table.
   
 =cut  =cut
Line 85  sub render_resource { Line 85  sub render_resource {
     ##      ##
     ## Render the problem      ## Render the problem
     my ($base) = ($resource->src =~ m|^(.*/)[^/]*$|);      my ($base) = ($resource->src =~ m|^(.*/)[^/]*$|);
     $base="http://".$ENV{'SERVER_NAME'}.$base;      $base=&Apache::lonnet::absolute_url().$base;
     my ($src,$symb)=($resource->link,&escape($resource->shown_symb));      my ($src,$symb)=($resource->link,&escape($resource->shown_symb));
     my $rendered_problem = &Apache::lonnet::ssi_body($src.'?symb='.$symb);      my $rendered_problem = &Apache::lonnet::ssi_body($src.'?symb='.$symb);
     $rendered_problem =~ s/<\s*form\s*/<nop /g;      $rendered_problem =~ s/<\s*form\s*/<nop /g;
Line 108  sub render_resource { Line 108  sub render_resource {
 ####################################################  ####################################################
 ####################################################  ####################################################
 sub get_resources {  sub get_resources {
     my ($navmap,$sequence) = @_;      my ($navmap,$sequence,$include_tools) = @_;
     my @resources = $navmap->retrieveResources($sequence,      my @resources;
                                                sub { shift->is_problem(); },      if ($include_tools) {
                                                0,0,0);          @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;      return @resources;
 }  }
   
Line 158  sub problem_selector { Line 165  sub problem_selector {
     return $navmap if (! ref($navmap)); # error      return $navmap if (! ref($navmap)); # error
     foreach my $seq (@sequences) {      foreach my $seq (@sequences) {
         my $seq_str = '';          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') {              if ($res->src() eq '/res/lib/templates/simpleproblem.problem') {
                 next if (grep(/^placeholder$/,@{$res->parts}));                  next if (grep(/^placeholder$/,@{$res->parts}));
             }              }
Line 190  sub problem_selector { Line 197  sub problem_selector {
             }              }
             my %partsseen;              my %partsseen;
             foreach my $part (@{$res->parts}) {              foreach my $part (@{$res->parts}) {
                 my @response_ids   = $res->responseIds($part);                  my (@response_ids,@response_types);
                 my @response_types = $res->responseType($part);                  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<scalar(@response_types);$i++){                  for (my $i=0;$i<scalar(@response_types);$i++){
                     my $respid = $response_ids[$i];                      my $respid = $response_ids[$i];
                     my $resptype = $response_types[$i];                      my $resptype = $response_types[$i];
Line 249  sub problem_selector { Line 262  sub problem_selector {
                             $seq_str .= ('&nbsp;'x2).                              $seq_str .= ('&nbsp;'x2).
                                         '<a target="preview" href="'.$link.'">'.&mt('view').'</a>';                                          '<a target="preview" href="'.$link.'">'.&mt('view').'</a>';
                             $seq_str .= "</td>". &Apache::loncommon::end_data_table_row()."\n";                              $seq_str .= "</td>". &Apache::loncommon::end_data_table_row()."\n";
                             $rb_count++;  
                         }                          }
                           $rb_count++;
                     }                      }
                 }                  }
             }              }
Line 277  sub problem_selector { Line 290  sub problem_selector {
         }          }
     }      }
     $Str .= &Apache::loncommon::end_data_table().&Apache::loncommon::end_scrollbox()."\n";      $Str .= &Apache::loncommon::end_data_table().&Apache::loncommon::end_scrollbox()."\n";
       if (!$rb_count) {
           if ($byres) {
               $Str = '<p class="LC_info">'.&mt('No gradable problems found').'</p>';
           } elsif ($AcceptedResponseTypes eq '.') {
               $Str = '<p class="LC_info">'.&mt('No problems found').'</p>';
           } else {
               $Str = '<p class="LC_info">'.&mt('No analyzable problems found').'</p>';
           }
       }
     return $Str;      return $Str;
 }  }
   

Removed from v.1.76.2.3  
changed lines
  Added in v.1.80


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>