Diff for /loncom/interface/spreadsheet/studentcalc.pm between versions 1.30 and 1.32

version 1.30, 2005/04/07 06:56:23 version 1.32, 2005/05/15 03:06:59
Line 101  sub initialize_sequence_cache { Line 101  sub initialize_sequence_cache {
     for my $sequence ($navmap->getById('0.0'), @all_sequences) {      for my $sequence ($navmap->getById('0.0'), @all_sequences) {
  if ($navmap->hasResource($sequence,sub { shift->is_problem(); }, 0)){   if ($navmap->hasResource($sequence,sub { shift->is_problem(); }, 0)){
             push(@Sequences,$sequence);              push(@Sequences,$sequence);
       &get_resources($sequence);
         }          }
     }      }
 }  }
   
   my %res_memoize;
 sub get_resources {  sub get_resources {
     my ($seq) = @_;      my ($seq) = @_;
       if (exists($res_memoize{$seq->symb()})) {
    return @{$res_memoize{$seq->symb()}};
       }
     return () if (! defined($navmap) || ! ref($navmap));      return () if (! defined($navmap) || ! ref($navmap));
     my @resources = $navmap->retrieveResources($seq,      my @resources = $navmap->retrieveResources($seq,
                                                sub { shift->is_problem(); },                                                 sub { shift->is_problem(); },
                                                0,0,0);                                                 0,0,0);
       $res_memoize{$seq->symb()}=\@resources;
     return @resources;      return @resources;
 }  }
   
 sub clear_package {  sub clear_package {
     undef(@Sequences);      undef(@Sequences);
     undef(%Exportrows);      undef(%Exportrows);
       undef(%res_memoize);
     &Apache::assesscalc::clear_package();      &Apache::assesscalc::clear_package();
 }  }
   
Line 496  END Line 503  END
 sub compute {  sub compute {
     my $self = shift;      my $self = shift;
     my ($r) = @_;      my ($r) = @_;
     my $connection = $r->connection();  
     if ($connection->aborted()) { $self->cleanup; return; }  
     if (! defined($current_course) ||      if (! defined($current_course) ||
         $current_course ne $env{'request.course.id'} ||          $current_course ne $env{'request.course.id'} ||
         ! @Sequences ) {          ! @Sequences ) {
Line 515  sub compute { Line 520  sub compute {
     my %c = $self->constants();      my %c = $self->constants();
     foreach my $seq (@Sequences) {      foreach my $seq (@Sequences) {
         foreach my $resource (&get_resources($seq)) {          foreach my $resource (&get_resources($seq)) {
             if ($connection->aborted()) { $self->cleanup(); return; }  
             my $rownum = $self->get_row_number_from_key($resource->symb);              my $rownum = $self->get_row_number_from_key($resource->symb);
             my $cell = 'A'.$rownum;              my $cell = 'A'.$rownum;
             my $assess_filename = 'Default';              my $assess_filename = 'Default';
Line 525  sub compute { Line 529  sub compute {
                 $self->{'row_source'}->{$rownum} = $assess_filename;                  $self->{'row_source'}->{$rownum} = $assess_filename;
             }              }
             $f{$cell} = $resource->symb.'__&&&__'.$assess_filename;              $f{$cell} = $resource->symb.'__&&&__'.$assess_filename;
             if ($connection->aborted()) { $self->cleanup(); return; }  
             my $assessSheet;              my $assessSheet;
                 $assessSheet = Apache::assesscalc->new($self->{'name'},                  $assessSheet = Apache::assesscalc->new($self->{'name'},
                                                        $self->{'domain'},                                                         $self->{'domain'},
Line 539  sub compute { Line 542  sub compute {
                 $assessSheet->get_title(),$rownum,$assessSheet->calcerror()));                  $assessSheet->get_title(),$rownum,$assessSheet->calcerror()));
             }              }
             #              #
             if ($connection->aborted()) { $self->cleanup(); return; }  
             if ($assessSheet->blackout()) {              if ($assessSheet->blackout()) {
                 $self->blackout(1);                  $self->blackout(1);
                 $self->{'blackout_rows'}->{$rownum} = 1;                  $self->{'blackout_rows'}->{$rownum} = 1;

Removed from v.1.30  
changed lines
  Added in v.1.32


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