version 1.54, 2005/08/26 20:46:46
|
version 1.60, 2005/12/08 02:22:15
|
Line 191 sub make_default {
|
Line 191 sub make_default {
|
{'spreadsheet_default_'.$self->{'type'} => $self->filename()}, |
{'spreadsheet_default_'.$self->{'type'} => $self->filename()}, |
$self->{'cdom'},$self->{'cnum'}); |
$self->{'cdom'},$self->{'cnum'}); |
return $result if ($result ne 'ok'); |
return $result if ($result ne 'ok'); |
|
&Apache::lonnet::appenv('course.'.$self->{'cid'}.'.spreadsheet_default_'. |
|
$self->{'type'} => $self->filename()); |
my $symb = $self->{'symb'}; |
my $symb = $self->{'symb'}; |
$symb = '' if (! defined($symb)); |
$symb = '' if (! defined($symb)); |
&Apache::lonnet::expirespread('','',$self->{'type'},$symb); |
&Apache::lonnet::expirespread('','',$self->{'type'},$symb); |
Line 211 course environment. Returns 0 otherwise
|
Line 213 course environment. Returns 0 otherwise
|
sub is_default { |
sub is_default { |
my $self = shift; |
my $self = shift; |
# Check to find out if we are the default spreadsheet (filenames match) |
# Check to find out if we are the default spreadsheet (filenames match) |
my $default_filename = ''; |
my $default_filename = $env{'course.'.$self->{'cid'}. |
my %tmphash = &Apache::lonnet::get('environment', |
'.spreadsheet_default_'.$self->{'type'}}; |
['spreadsheet_default_'. |
|
$self->{'type'}], |
|
$self->{'cdom'}, |
|
$self->{'cnum'}); |
|
my ($tmp) = keys(%tmphash); |
|
if ($tmp !~ /^(con_lost|error|no_such_host)/i) { |
|
$default_filename = $tmphash{'spreadsheet_default_'.$self->{'type'}}; |
|
} |
|
if ($default_filename =~ /^\s*$/) { |
if ($default_filename =~ /^\s*$/) { |
$default_filename = 'default_'.$self->{'type'}; |
$default_filename = 'default_'.$self->{'type'}; |
} |
} |
Line 703 sub get_values {
|
Line 697 sub get_values {
|
} |
} |
return \@values; |
return \@values; |
} else { |
} else { |
$num = '(\d+)'; |
$num = '([1-9]\d*)'; |
} |
} |
if (($la eq '*') || ($ua eq '*')) { |
if (($la eq '*') || ($ua eq '*')) { |
$alpha='[A-z]'; |
$alpha='[A-z]'; |
Line 1629 sub load {
|
Line 1623 sub load {
|
$self->{'row_source'}=$spreadsheets{$cachekey}->{'row_source'}; |
$self->{'row_source'}=$spreadsheets{$cachekey}->{'row_source'}; |
$self->{'row_numbers'}=$spreadsheets{$cachekey}->{'row_numbers'}; |
$self->{'row_numbers'}=$spreadsheets{$cachekey}->{'row_numbers'}; |
$self->{'maxrow'}=$spreadsheets{$cachekey}->{'maxrow'}; |
$self->{'maxrow'}=$spreadsheets{$cachekey}->{'maxrow'}; |
} else { |
} else { |
# Not cached, need to read |
# Not cached, need to read |
if (! defined($filename)) { |
if (! defined($filename)) { |
$formulas = $self->load_system_default_sheet(); |
$formulas = $self->load_system_default_sheet(); |
Line 1662 sub load {
|
Line 1656 sub load {
|
$formulas = $self->load_system_default_sheet(); |
$formulas = $self->load_system_default_sheet(); |
} |
} |
} |
} |
$filename=$self->filename(); # filename may have changed |
|
$cachekey = join('_',($cnum,$cdom,$stype,$filename)); |
|
if (ref($formulas) eq 'HASH') { |
|
%{$spreadsheets{$cachekey}->{'formulas'}} = %{$formulas}; |
|
} |
|
$self->formulas($formulas); |
$self->formulas($formulas); |
$self->set_row_sources(); |
$self->set_row_sources(); |
$self->set_row_numbers(); |
$self->set_row_numbers(); |
if (ref($self->{'row_source'})) { |
$self->cache_sheet($formulas); |
%{$spreadsheets{$cachekey}->{'row_source'}} = |
} |
%{$self->{'row_source'}}; |
} |
} |
|
if (ref($self->{'row_numbers'})) { |
sub cache_sheet { |
%{$spreadsheets{$cachekey}->{'row_numbers'}} = |
my $self = shift; |
%{$self->{'row_numbers'}}; |
my ($formulas) = @_; |
} |
my $stype = $self->{'type'}; |
$spreadsheets{$cachekey}->{'maxrow'} = $self->{'maxrow'}; |
my $cnum = $self->{'cnum'}; |
|
my $cdom = $self->{'cdom'}; |
|
# |
|
my $filename = $self->filename(); |
|
my $cachekey = join('_',($cnum,$cdom,$stype,$filename)); |
|
|
|
if (ref($formulas) eq 'HASH') { |
|
%{$spreadsheets{$cachekey}->{'formulas'}} = %{$formulas}; |
|
} |
|
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'}; |
} |
} |
|
|
sub set_row_sources { |
sub set_row_sources { |
Line 1731 sub save {
|
Line 1734 sub save {
|
my $cnum = $self->{'cnum'}; |
my $cnum = $self->{'cnum'}; |
my $cdom = $self->{'cdom'}; |
my $cdom = $self->{'cdom'}; |
my $filename = $self->{'filename'}; |
my $filename = $self->{'filename'}; |
my $cachekey = join('_',($cnum,$cdom,$stype,$filename)); |
|
# Cache new sheet |
# Cache new sheet |
%{$spreadsheets{$cachekey}->{'formulas'}}=%f; |
$self->cache_sheet(\%f); |
# Write sheet |
# Write sheet |
foreach (keys(%f)) { |
foreach (keys(%f)) { |
delete($f{$_}) if ($f{$_} eq 'import'); |
delete($f{$_}) if ($f{$_} eq 'import'); |
Line 1749 sub save {
|
Line 1751 sub save {
|
{'spreadsheet_default_'.$stype => $filename }, |
{'spreadsheet_default_'.$stype => $filename }, |
$cdom,$cnum); |
$cdom,$cnum); |
return $reply if ($reply ne 'ok'); |
return $reply if ($reply ne 'ok'); |
|
&Apache::lonnet::appenv('course.'.$self->{'cid'}.'.spreadsheet_default_'. |
|
$self->{'type'} => $self->filename()); |
} |
} |
if ($self->is_default()) { |
if ($self->is_default()) { |
if ($self->{'type'} eq 'studentcalc') { |
if ($self->{'type'} eq 'studentcalc') { |