version 1.54, 2006/05/01 17:30:20
|
version 1.58, 2007/01/23 01:36:26
|
Line 174 sub initialize {
|
Line 174 sub initialize {
|
######################################################## |
######################################################## |
######################################################## |
######################################################## |
sub initialize_package { |
sub initialize_package { |
my ($sname,$sdomain,$in_navmap) = @_; |
my ($sname,$sdomain,$in_navmap,$calling_sheet) = @_; |
$current_name = $sname; |
$current_name = $sname; |
$current_domain = $sdomain; |
$current_domain = $sdomain; |
$navmap = $in_navmap; |
$navmap = $in_navmap; |
Line 185 sub initialize_package {
|
Line 185 sub initialize_package {
|
undef(%courseopt); |
undef(%courseopt); |
} |
} |
&load_cached_export_rows(); |
&load_cached_export_rows(); |
&load_parameter_caches(); |
&load_parameter_caches($calling_sheet); |
&Apache::loncoursedata::clear_internal_caches(); |
&Apache::loncoursedata::clear_internal_caches(); |
} |
} |
|
|
Line 202 sub initialize_package {
|
Line 202 sub initialize_package {
|
######################################################## |
######################################################## |
######################################################## |
######################################################## |
sub load_parameter_caches { |
sub load_parameter_caches { |
|
my ($calling_sheet) = @_; |
my $userprefix = $current_name.':'.$current_domain.'_'; |
my $userprefix = $current_name.':'.$current_domain.'_'; |
$userprefix =~ s/:/_/g; |
$userprefix =~ s/:/_/g; |
# |
# |
Line 234 sub load_parameter_caches {
|
Line 235 sub load_parameter_caches {
|
if (! %userdata) { |
if (! %userdata) { |
%userdata = &Apache::loncoursedata::get_current_state($current_name, |
%userdata = &Apache::loncoursedata::get_current_state($current_name, |
$current_domain); |
$current_domain); |
|
my ($tmp) = %userdata; |
|
if ($tmp =~ /^error:(.*)/) { |
|
$calling_sheet->set_calcerror($1); |
|
} |
$userdata{'loadtime'} = time; |
$userdata{'loadtime'} = time; |
} |
} |
return; |
return; |
Line 272 sub ensure_current_caches {
|
Line 277 sub ensure_current_caches {
|
undef(%useropt); |
undef(%useropt); |
undef(%userdata); |
undef(%userdata); |
} |
} |
&load_parameter_caches(); |
&load_parameter_caches($self); |
} |
} |
|
|
################################################## |
################################################## |
Line 314 sub parmval {
|
Line 319 sub parmval {
|
# This should be a |
# This should be a |
if (!defined($mapname) || !defined($id) || !defined($fn)) { |
if (!defined($mapname) || !defined($id) || !defined($fn)) { |
($mapname,$id,$fn)=&Apache::lonnet::decode_symb($symb); |
($mapname,$id,$fn)=&Apache::lonnet::decode_symb($symb); |
|
$mapname = &Apache::lonnet::deversion($mapname); |
} |
} |
# Cascading lookup scheme |
# Cascading lookup scheme |
my $rwhat=$what; |
my $rwhat=$what; |
Line 541 sub assess_html_row {
|
Line 547 sub assess_html_row {
|
$row_html .= &Apache::Spreadsheet::html_uneditable_cell($cell, |
$row_html .= &Apache::Spreadsheet::html_uneditable_cell($cell, |
'#FFDDDD'); |
'#FFDDDD'); |
} else { |
} else { |
$row_html .= '<td bgcolor="#EOFFDD">'; |
$row_html .= '<td bgcolor="#E0FFDD">'; |
$row_html .= &Apache::Spreadsheet::html_editable_cell($cell, |
$row_html .= &Apache::Spreadsheet::html_editable_cell($cell, |
'#E0FFDD',1); |
'#E0FFDD',1); |
} |
} |
Line 644 sub get_parameter_values {
|
Line 650 sub get_parameter_values {
|
if (tie(%parmhash,'GDBM_File', |
if (tie(%parmhash,'GDBM_File', |
$self->{'coursefilename'}.'_parms.db',&GDBM_READER(),0640)) { |
$self->{'coursefilename'}.'_parms.db',&GDBM_READER(),0640)) { |
my ($mapname,$id,$fn)=&Apache::lonnet::decode_symb($self->{'symb'}); |
my ($mapname,$id,$fn)=&Apache::lonnet::decode_symb($self->{'symb'}); |
|
$mapname = &Apache::lonnet::deversion($mapname); |
foreach my $parmname (@Parameters) { |
foreach my $parmname (@Parameters) { |
my $value = $self->parmval($parmname,$self->{'symb'}, |
my $value = $self->parmval($parmname,$self->{'symb'}, |
$self->{'name'},$self->{'domain'}, |
$self->{'name'},$self->{'domain'}, |
Line 845 sub sett {
|
Line 852 sub sett {
|
# Replace 'A0' with the value from 'A0' |
# Replace 'A0' with the value from 'A0' |
$t{$cell}=~s/(^|[^\"\'])([A-Za-z]\d+)/$1\$sheet_values\{\'$2\'\}/g; |
$t{$cell}=~s/(^|[^\"\'])([A-Za-z]\d+)/$1\$sheet_values\{\'$2\'\}/g; |
# Replace parameters |
# Replace parameters |
$t{$cell}=~s/(^|[^\"\'])\[([^\]]+)\]/$1.$self->expandnamed($2)/ge; |
$t{$cell}=~s/(^|[^\"\'])\[([^\]]+)\]/$1.$self->expandnamed($2)/sge; |
} |
} |
} |
} |
# |
# |
Line 864 sub sett {
|
Line 871 sub sett {
|
$t{$cell}=$formula; |
$t{$cell}=$formula; |
$t{$cell}=~s/\.\.+/\,/g; |
$t{$cell}=~s/\.\.+/\,/g; |
$t{$cell}=~s/(^|[^\"\'])([A-Za-z]\d+)/$1\$sheet_values\{\'$2\'\}/g; |
$t{$cell}=~s/(^|[^\"\'])([A-Za-z]\d+)/$1\$sheet_values\{\'$2\'\}/g; |
$t{$cell}=~s/(^|[^\"\'])\[([^\]]+)\]/$1.$self->expandnamed($2)/ge; |
$t{$cell}=~s/(^|[^\"\'])\[([^\]]+)\]/$1.$self->expandnamed($2)/sge; |
} |
} |
} |
} |
# Put %t into the safe space |
# Put %t into the safe space |