Diff for /loncom/interface/spreadsheet/assesscalc.pm between versions 1.27 and 1.28

version 1.27, 2003/11/10 15:09:13 version 1.28, 2003/11/11 15:36:28
Line 474  END Line 474  END
     #      #
     my $num_output = 0;      my $num_output = 0;
     foreach my $rownum (sort {$a <=> $b} ($self->rows())) {      foreach my $rownum (sort {$a <=> $b} ($self->rows())) {
           if (! $self->parameter_part_is_valid(
                                                $self->{'formulas'}->{'A'.$rownum}
                                                )) {
               next;
           }
  if ($num_output++ % 50 == 0) {   if ($num_output++ % 50 == 0) {
     $r->print("</table>\n".$tableheader);      $r->print("</table>\n".$tableheader);
  }   }
Line 637  sub get_problem_state { Line 642  sub get_problem_state {
     return %student_parameters;      return %student_parameters;
 }  }
   
   sub determine_parts {
       my $self = shift;
       if (exists($self->{'Parts'}) && ref($self->{'Parts'}) eq 'HASH') {
           return;
       }
       my (undef,undef,$url) = &Apache::lonnet::decode_symb($self->{'symb'});
       my $src = &Apache::lonnet::clutter($url);
       return if (! defined($src));
       my %Parts;
       my $metadata = &Apache::lonnet::metadata($src,'packages');
       foreach (split(',',$metadata)) {
           my ($part) = (/^part_(.*)$/);
           if (defined($part) && 
               ! &Apache::loncommon::check_if_partid_hidden
                   ($part,$self->{'symb'},$self->{'name'},$self->{'domain'})
               ) {
               $Parts{$part}++;
           }
       }
       # Make sure part 0 is defined.
       $Parts{'0'}++;
       $self->{'Parts'} = \%Parts;
       return;
   }
   
   sub parameter_part_is_valid {
       my $self = shift;
       my ($parameter) = @_;
       return 1 if ($parameter eq 'timestamp');
       if (! defined($self->{'Parts'}) || 
           ! ref ($self->{'Parts'})    ||
           ref($self->{'Parts'}) ne 'HASH') {
           return 1;
       }
       #
       my (undef,$part) = 
           ($parameter =~ m/^(resource|stores|parameter)_([^_]+)_.*/);
       if (exists($self->{'Parts'})          && 
           exists($self->{'Parts'}->{$part}) &&
           $self->{'Parts'}->{$part} ) {
           return 1;
       } else {
           return 0;
       }
   }
   
 sub compute {  sub compute {
     my $self = shift;      my $self = shift;
     my ($r) = @_;      my ($r) = @_;
Line 688  sub compute { Line 739  sub compute {
         $parameters{$parm} = $value;          $parameters{$parm} = $value;
     }      }
     #      #
       # Clean out any bad parameters
       $self->determine_parts();
       foreach my $param (keys(%parameters)) {
           if (! $self->parameter_part_is_valid($param)) {
               delete ($parameters{$param});
           }
       }
       #
     # Set up the formulas and parameter values      # Set up the formulas and parameter values
     my %f=$self->formulas();      my %f=$self->formulas();
     my %c;      my %c;

Removed from v.1.27  
changed lines
  Added in v.1.28


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