version 1.166, 2003/01/30 18:37:49
|
version 1.167, 2003/01/30 21:35:13
|
Line 537 sub tmpdir {
|
Line 537 sub tmpdir {
|
} |
} |
|
|
my %spreadsheets; |
my %spreadsheets; |
my %loadedcaches; |
#my %loadedcaches; |
my %courserdatas; |
my %courserdatas; |
my %userrdatas; |
my %userrdatas; |
my %defaultsheets; |
my %defaultsheets; |
my %rowlabel_cache; |
my %rowlabel_cache; |
my %oldsheets; |
#my %oldsheets; |
|
|
sub complete_recalc { |
sub complete_recalc { |
my $self = shift; |
my $self = shift; |
Line 609 sub cachedssheets {
|
Line 609 sub cachedssheets {
|
my ($uname,$udom) = @_; |
my ($uname,$udom) = @_; |
$uname = $uname || $self->{'uname'}; |
$uname = $uname || $self->{'uname'}; |
$udom = $udom || $self->{'udom'}; |
$udom = $udom || $self->{'udom'}; |
if (! $Apache::lonspreadsheet::loadedcaches{$uname.'_'.$udom}) { |
if (! exists($Apache::lonspreadsheet::loadedcaches{$uname.'_'.$udom})) { |
my @tmp = &Apache::lonnet::dump('nohist_calculatedsheets_'. |
my @tmp = &Apache::lonnet::dump('nohist_calculatedsheets_'. |
$ENV{'request.course.id'}, |
$ENV{'request.course.id'}, |
$self->{'udom'}, |
$self->{'udom'}, |
Line 1950 sub rowlabels {
|
Line 1950 sub rowlabels {
|
$self->{'rowlabel'}=$rowlabel; |
$self->{'rowlabel'}=$rowlabel; |
return; |
return; |
} else { |
} else { |
return %{$self->{'rowlabel'}} if (defined($self->{'rowlabels'})); |
return %{$self->{'rowlabel'}} if (defined($self->{'rowlabel'})); |
} |
} |
} |
} |
|
|
Line 2664 sub readsheet {
|
Line 2664 sub readsheet {
|
# $fn now has a value |
# $fn now has a value |
$self->{'filename'} = $fn; |
$self->{'filename'} = $fn; |
# see if sheet is cached |
# see if sheet is cached |
my $fstring=''; |
if (exists($spreadsheets{$cnum.'_'.$cdom.'_'.$stype.'_'.$fn})) { |
if ($fstring=$spreadsheets{$cnum.'_'.$cdom.'_'.$stype.'_'.$fn}) { |
|
my %tmp = split(/___;___/,$fstring); |
my %tmp = split(/___;___/, |
|
$spreadsheets{$cnum.'_'.$cdom.'_'.$stype.'_'.$fn}); |
$self->formulas(\%tmp); |
$self->formulas(\%tmp); |
} else { |
} else { |
# Not cached, need to read |
# Not cached, need to read |
Line 2978 sub get_student_rowlabels {
|
Line 2979 sub get_student_rowlabels {
|
$self->{'rowlabel'} = {}; |
$self->{'rowlabel'} = {}; |
# |
# |
my $identifier =$self->{'coursefilename'}.'_'.$stype; |
my $identifier =$self->{'coursefilename'}.'_'.$stype; |
if ($rowlabel_cache{$identifier}) { |
if (exists($rowlabel_cache{$identifier})) { |
%{$self->{'rowlabel'}}=split(/___;___/,$rowlabel_cache{$identifier}); |
my %tmp = split(/___;___/,$rowlabel_cache{$identifier}); |
|
$self->rowlabels(\%tmp); |
} else { |
} else { |
# Get the data and store it in the cache |
# Get the data and store it in the cache |
# Tie hash |
# Tie hash |
Line 3031 sub get_assess_rowlabels {
|
Line 3033 sub get_assess_rowlabels {
|
$self->rowlabels({}); |
$self->rowlabels({}); |
my $identifier =$self->{'coursefilename'}.'_'.$stype.'_'.$usymb; |
my $identifier =$self->{'coursefilename'}.'_'.$stype.'_'.$usymb; |
# |
# |
if ($rowlabel_cache{$identifier}) { |
if (exists($rowlabel_cache{$identifier})) { |
$self->rowlabels(split(/___;___/,$rowlabel_cache{$identifier})); |
my %tmp = split('___;___',$rowlabel_cache{$identifier}); |
|
$self->rowlabels(\%tmp); |
} else { |
} else { |
# Get the data and store it in the cache |
# Get the data and store it in the cache |
# Tie hash |
# Tie hash |
Line 3076 sub get_assess_rowlabels {
|
Line 3079 sub get_assess_rowlabels {
|
untie(%course_db); |
untie(%course_db); |
# Store away the results |
# Store away the results |
$self->rowlabels(\%parameter_labels); |
$self->rowlabels(\%parameter_labels); |
$rowlabel_cache{$identifier}=join('___;___',$self->rowlabels()); |
$rowlabel_cache{$identifier}=join('___;___',%parameter_labels); |
} |
} |
|
|
} |
} |
|
|
sub updatestudentassesssheet { |
sub updatestudentassesssheet { |
Line 3196 sub loadcourse {
|
Line 3198 sub loadcourse {
|
</script> |
</script> |
ENDPOP |
ENDPOP |
$r->rflush(); |
$r->rflush(); |
|
# It would be nice to load in the classlist and assessment info at this |
|
# point, before attacking the student spreadsheets. |
foreach my $row ($self->rows()) { |
foreach my $row ($self->rows()) { |
if(defined($c) && ($c->aborted())) { |
if(defined($c) && ($c->aborted())) { |
last; |
last; |