--- loncom/interface/spreadsheet/Spreadsheet.pm 2006/09/03 00:54:05 1.72 +++ loncom/interface/spreadsheet/Spreadsheet.pm 2007/01/25 22:00:07 1.73.2.1 @@ -1,5 +1,5 @@ # -# $Id: Spreadsheet.pm,v 1.72 2006/09/03 00:54:05 albertel Exp $ +# $Id: Spreadsheet.pm,v 1.73.2.1 2007/01/25 22:00:07 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -807,6 +807,8 @@ sub expandnamed { if ($expression=~/^\&/) { my ($func,$var,$formula)=($expression=~/^\&(\w+)\(([^\;]+)\;(.*)\)/); my @vars=split(/\W+/,$formula); + # make the list uniq + @vars = keys(%{{ map { $_ => 1 } @vars }}); my %values=(); foreach my $varname ( @vars ) { if ($varname=~/^(parameter|stores|timestamp)/) { @@ -1795,13 +1797,11 @@ sub save { &Apache::lonnet::appenv('course.'.$self->{'cid'}.'.spreadsheet_default_'. $self->{'type'} => $self->filename()); } - if ($self->is_default()) { - if ($self->{'type'} eq 'studentcalc') { - &Apache::lonnet::expirespread('','','studentcalc',''); - } elsif ($self->{'type'} eq 'assesscalc') { - &Apache::lonnet::expirespread('','','assesscalc',''); - &Apache::lonnet::expirespread('','','studentcalc',''); - } + if ($self->{'type'} eq 'studentcalc') { + &Apache::lonnet::expirespread('','','studentcalc',''); + } elsif ($self->{'type'} eq 'assesscalc') { + &Apache::lonnet::expirespread('','','assesscalc',''); + &Apache::lonnet::expirespread('','','studentcalc',''); } return $reply; }