Diff for /loncom/interface/spreadsheet/assesscalc.pm between versions 1.43 and 1.46

version 1.43, 2005/05/15 02:28:23 version 1.46, 2005/05/15 02:49:40
Line 301  this user and course. Line 301  this user and course.
 ##################################################  ##################################################
 sub parmval {  sub parmval {
     my $self = shift;      my $self = shift;
     my ($what,$symb,$uname,$udom,$csec,$recurse)=@_;      my ($what,$symb,$uname,$udom,$csec,$recurse,$mapname,$id,$fn)=@_;
     $uname = $self->{'name'}    if (! defined($uname));      $uname = $self->{'name'}    if (! defined($uname));
     $udom  = $self->{'domain'}  if (! defined($udom));      $udom  = $self->{'domain'}  if (! defined($udom));
     $csec  = $self->{'section'} if (! defined($csec));      $csec  = $self->{'section'} if (! defined($csec));
Line 310  sub parmval { Line 310  sub parmval {
     my $result='';      my $result='';
     #      #
     # This should be a       # This should be a 
     my ($mapname,$id,$fn)=&Apache::lonnet::decode_symb($symb);      if (!defined($mapname) || !defined($id) || !defined($fn)) {
    ($mapname,$id,$fn)=&Apache::lonnet::decode_symb($symb);
       }
     # Cascading lookup scheme      # Cascading lookup scheme
     my $rwhat=$what;      my $rwhat=$what;
     $what =~ s/^parameter\_//;      $what =~ s/^parameter\_//;
Line 367  sub parmval { Line 369  sub parmval {
  if ($part eq '') { $part='0'; }   if ($part eq '') { $part='0'; }
  my $newwhat=$rwhat;   my $newwhat=$rwhat;
  $newwhat=~s/\Q$space\E/$part/;   $newwhat=~s/\Q$space\E/$part/;
  my $partgeneral=$self->parmval($newwhat,$symb,$uname,$udom,$csec,1);   my $partgeneral=$self->parmval($newwhat,$symb,$uname,$udom,$csec,1,
          $mapname,$id,$fn);
  if (defined($partgeneral)) { return $partgeneral; }   if (defined($partgeneral)) { return $partgeneral; }
     }      }
     if ($recurse) { return undef; }      if ($recurse) { return undef; }
Line 627  sub get_parameter_values { Line 630  sub get_parameter_values {
     my $filename = $self->{'coursefilename'}.'_parms.db';      my $filename = $self->{'coursefilename'}.'_parms.db';
     if (tie(%parmhash,'GDBM_File',      if (tie(%parmhash,'GDBM_File',
             $self->{'coursefilename'}.'_parms.db',&GDBM_READER(),0640)) {              $self->{'coursefilename'}.'_parms.db',&GDBM_READER(),0640)) {
    my ($mapname,$id,$fn)=&Apache::lonnet::decode_symb($self->{'symb'});
         foreach my $parmname (@Parameters) {          foreach my $parmname (@Parameters) {
             my $value = $self->parmval($parmname);              my $value = $self->parmval($parmname,$self->{'name'},
          $self->{'domain'},$self->{'section'},
          $self->{'symb'},undef,$mapname,$id,$fn);
             $parameters{$parmname} =$value;              $parameters{$parmname} =$value;
         }          }
         untie(%parmhash);          untie(%parmhash);
Line 829  sub sett { Line 835  sub sett {
     while (my ($cell,$formula) = each(%{$self->{'formulas'}})) {      while (my ($cell,$formula) = each(%{$self->{'formulas'}})) {
  next if ($cell =~ /template_/);   next if ($cell =~ /template_/);
         if ($cell =~ /^A/ && $cell ne 'A0') {          if ($cell =~ /^A/ && $cell ne 'A0') {
             if ($formula !~ /^\!/) {      if ($formula !~ /^\!/ 
    && exists($self->{'constants'}->{$formula}) 
    && $self->{'constants'}->{$formula} ne ''
    ) {
  $Apache::Spreadsheet::sheet_values{$cell}=   $Apache::Spreadsheet::sheet_values{$cell}=
     eval($self->{'constants'}->{$formula});      eval($self->{'constants'}->{$formula});
             }              }

Removed from v.1.43  
changed lines
  Added in v.1.46


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