--- loncom/interface/spreadsheet/Spreadsheet.pm 2005/05/15 04:55:33 1.50 +++ loncom/interface/spreadsheet/Spreadsheet.pm 2005/08/24 18:14:47 1.53 @@ -1,5 +1,5 @@ # -# $Id: Spreadsheet.pm,v 1.50 2005/05/15 04:55:33 albertel Exp $ +# $Id: Spreadsheet.pm,v 1.53 2005/08/24 18:14:47 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1615,7 +1615,11 @@ sub load { my ($formulas); if (exists($spreadsheets{$cachekey})) { $formulas = $spreadsheets{$cachekey}->{'formulas'}; - } else { + $self->formulas($formulas); + $self->{'row_source'}=$spreadsheets{$cachekey}->{'row_source'}; + $self->{'row_numbers'}=$spreadsheets{$cachekey}->{'row_numbers'}; + $self->{'maxrow'}=$spreadsheets{$cachekey}->{'maxrow'}; + } else { # Not cached, need to read if (! defined($filename)) { $formulas = $self->load_system_default_sheet(); @@ -1649,12 +1653,23 @@ sub load { } } $filename=$self->filename(); # filename may have changed - $cachekey = join('_',($cnum,$cdom,$stype,$filename)); - %{$spreadsheets{$cachekey}->{'formulas'}} = %{$formulas}; + $cachekey = join('_',($cnum,$cdom,$stype,$filename)); + if (ref($formulas) eq 'HASH') { + %{$spreadsheets{$cachekey}->{'formulas'}} = %{$formulas}; + } + $self->formulas($formulas); + $self->set_row_sources(); + $self->set_row_numbers(); + if (ref($self->{'row_source'})) { + %{$spreadsheets{$cachekey}->{'row_source'}} = + %{$self->{'row_source'}}; + } + if (ref($self->{'row_numbers'})) { + %{$spreadsheets{$cachekey}->{'row_numbers'}} = + %{$self->{'row_numbers'}}; + } + $spreadsheets{$cachekey}->{'maxrow'} = $self->{'maxrow'}; } - $self->formulas($formulas); - $self->set_row_sources(); - $self->set_row_numbers(); } sub set_row_sources {