--- loncom/interface/spreadsheet/assesscalc.pm 2005/05/15 02:28:23 1.43 +++ loncom/interface/spreadsheet/assesscalc.pm 2005/05/15 02:40:26 1.44 @@ -1,5 +1,5 @@ # -# $Id: assesscalc.pm,v 1.43 2005/05/15 02:28:23 albertel Exp $ +# $Id: assesscalc.pm,v 1.44 2005/05/15 02:40:26 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -301,7 +301,7 @@ this user and course. ################################################## sub parmval { 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)); $udom = $self->{'domain'} if (! defined($udom)); $csec = $self->{'section'} if (! defined($csec)); @@ -310,7 +310,9 @@ sub parmval { my $result=''; # # 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 my $rwhat=$what; $what =~ s/^parameter\_//; @@ -367,7 +369,8 @@ sub parmval { if ($part eq '') { $part='0'; } my $newwhat=$rwhat; $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 ($recurse) { return undef; } @@ -627,8 +630,9 @@ sub get_parameter_values { my $filename = $self->{'coursefilename'}.'_parms.db'; if (tie(%parmhash,'GDBM_File', $self->{'coursefilename'}.'_parms.db',&GDBM_READER(),0640)) { + my ($mapname,$id,$fn)=&Apache::lonnet::decode_symb($self->{'symb'}); 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; } untie(%parmhash);