version 1.18, 2003/09/05 01:06:45
|
version 1.19, 2003/09/05 01:57:54
|
Line 208 sub load_parameter_caches {
|
Line 208 sub load_parameter_caches {
|
######################################################## |
######################################################## |
sub ensure_current_parameter_caches { |
sub ensure_current_parameter_caches { |
my $self = shift; |
my $self = shift; |
|
## |
|
## Check for a modified parameters |
|
## |
if (! defined($current_course) || |
if (! defined($current_course) || |
$current_course ne $ENV{'request.course.id'} ) { |
$current_course ne $ENV{'request.course.id'} ) { |
$current_course = $ENV{'request.course.id'}; |
$current_course = $ENV{'request.course.id'}; |
undef(%courseopt); |
undef(%courseopt); |
} |
} |
|
## |
|
## Check for new user |
|
## |
if (! defined($current_name) || $current_name ne $self->{'name'} || |
if (! defined($current_name) || $current_name ne $self->{'name'} || |
! defined($current_domain) || $current_domain ne $self->{'domain'}) { |
! defined($current_domain) || $current_domain ne $self->{'domain'}) { |
$current_domain = $self->{'domain'}; |
$current_domain = $self->{'domain'}; |
Line 518 sub excel_rows {
|
Line 524 sub excel_rows {
|
|
|
sub compute { |
sub compute { |
my $self = shift; |
my $self = shift; |
|
my ($r) = @_; |
|
my $connection = $r->connection(); |
|
if ($connection->aborted()) { $self->cleanup(); return; } |
# $self->logthis('computing'); |
# $self->logthis('computing'); |
$self->initialize_safe_space(); |
$self->initialize_safe_space(); |
######################################### |
######################################### |
Line 556 sub compute {
|
Line 565 sub compute {
|
} |
} |
# |
# |
# Get the values of the metadata fields |
# Get the values of the metadata fields |
|
if ($connection->aborted()) { $self->cleanup(); return; } |
$self->ensure_current_parameter_caches(); |
$self->ensure_current_parameter_caches(); |
|
if ($connection->aborted()) { $self->cleanup(); return; } |
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)) { |
Line 568 sub compute {
|
Line 579 sub compute {
|
} else { |
} else { |
$self->logthis('unable to tie '.$filename); |
$self->logthis('unable to tie '.$filename); |
} |
} |
|
if ($connection->aborted()) { $self->cleanup(); return; } |
# |
# |
# Clean out unnecessary parameters |
# Clean out unnecessary parameters |
foreach (keys(%parameters)) { |
foreach (keys(%parameters)) { |
Line 602 sub compute {
|
Line 614 sub compute {
|
} |
} |
} |
} |
} |
} |
|
if ($connection->aborted()) { $self->cleanup(); return; } |
# |
# |
# Move the parameters into the spreadsheet |
# Move the parameters into the spreadsheet |
|
if ($connection->aborted()) { $self->cleanup(); return; } |
while (my ($parm,$value) = each(%parameters)) { |
while (my ($parm,$value) = each(%parameters)) { |
my $cell = 'A'.$self->get_row_number_from_key($parm); |
my $cell = 'A'.$self->get_row_number_from_key($parm); |
$f{$cell} = $parm; |
$f{$cell} = $parm; |
Line 612 sub compute {
|
Line 626 sub compute {
|
} |
} |
$self->formulas(\%f); |
$self->formulas(\%f); |
$self->constants(\%c); |
$self->constants(\%c); |
|
if ($connection->aborted()) { $self->cleanup(); return; } |
$self->calcsheet(); |
$self->calcsheet(); |
# |
# |
# Store export row in cache |
# Store export row in cache |
Line 622 sub compute {
|
Line 637 sub compute {
|
# Save the export data |
# Save the export data |
$self->save_export_data(); |
$self->save_export_data(); |
$self->save() if ($self->need_to_save()); |
$self->save() if ($self->need_to_save()); |
|
if ($connection->aborted()) { $self->cleanup(); return; } |
return; |
return; |
} |
} |
|
|
Line 731 spreadsheet only if necessary.
|
Line 747 spreadsheet only if necessary.
|
############################################# |
############################################# |
sub export_data { |
sub export_data { |
my $self = shift; |
my $self = shift; |
|
my ($r) = @_; |
|
my $connection = $r->connection(); |
my $symb = $self->{'symb'}; |
my $symb = $self->{'symb'}; |
if (! exists($ENV{'request.role.adv'}) || ! $ENV{'request.role.adv'} || |
if (! exists($ENV{'request.role.adv'}) || ! $ENV{'request.role.adv'} || |
! exists($Exportrows{$symb}) || ! defined($Exportrows{$symb}) || |
! exists($Exportrows{$symb}) || ! defined($Exportrows{$symb}) || |
Line 739 sub export_data {
|
Line 757 sub export_data {
|
! defined($Exportrows{$symb}->{$self->{'filename'}}) || |
! defined($Exportrows{$symb}->{$self->{'filename'}}) || |
! ref($Exportrows{$symb}->{$self->{'filename'}}) |
! ref($Exportrows{$symb}->{$self->{'filename'}}) |
) { |
) { |
$self->compute(); |
$self->compute($r); |
} |
} |
|
if ($connection->aborted()) { $self->cleanup(); return; } |
my @Data = @{$Exportrows{$symb}->{$self->{'filename'}}}; |
my @Data = @{$Exportrows{$symb}->{$self->{'filename'}}}; |
if ($Data[0] =~ /^(.*)___=___/) { |
if ($Data[0] =~ /^(.*)___=___/) { |
$self->{'sheetname'} = $1; |
$self->{'sheetname'} = $1; |