version 1.17.2.3, 2003/12/05 22:24:20
|
version 1.18, 2003/09/05 01:06:45
|
Line 44 assesscalc
|
Line 44 assesscalc
|
package Apache::assesscalc; |
package Apache::assesscalc; |
|
|
use strict; |
use strict; |
|
use warnings FATAL=>'all'; |
|
no warnings 'uninitialized'; |
use Apache::Constants qw(:common :http); |
use Apache::Constants qw(:common :http); |
use Apache::lonnet; |
use Apache::lonnet; |
use Apache::loncommon; |
use Apache::loncommon; |
use Apache::Spreadsheet; |
use Apache::Spreadsheet; |
use Apache::loncoursedata(); |
|
use HTML::Entities(); |
use HTML::Entities(); |
use Spreadsheet::WriteExcel; |
use Spreadsheet::WriteExcel; |
use GDBM_File; |
use GDBM_File; |
Line 126 sub clear_package {
|
Line 127 sub clear_package {
|
|
|
sub initialize { |
sub initialize { |
&clear_package(); |
&clear_package(); |
&Apache::loncoursedata::clear_internal_caches(); |
|
} |
} |
|
|
######################################################## |
######################################################## |
Line 150 sub initialize_package {
|
Line 150 sub initialize_package {
|
} |
} |
&load_cached_export_rows(); |
&load_cached_export_rows(); |
&load_parameter_caches(); |
&load_parameter_caches(); |
&Apache::loncoursedata::clear_internal_caches(); |
|
} |
} |
|
|
######################################################## |
######################################################## |
Line 170 sub load_parameter_caches {
|
Line 169 sub load_parameter_caches {
|
# |
# |
# Course Parameters Cache |
# Course Parameters Cache |
if (! %courseopt) { |
if (! %courseopt) { |
&Apache::lonnet::logthis("loading course options"); |
|
$current_course = $ENV{'request.course.id'}; |
$current_course = $ENV{'request.course.id'}; |
undef(%courseopt); |
undef(%courseopt); |
if (! defined($current_name) || ! defined($current_domain)) { |
if (! defined($current_name) || ! defined($current_domain)) { |
Line 374 sub parent_link {
|
Line 372 sub parent_link {
|
sub outsheet_html { |
sub outsheet_html { |
my $self = shift; |
my $self = shift; |
my ($r) = @_; |
my ($r) = @_; |
#################################### |
|
# Report any calculation errors # |
|
#################################### |
|
$r->print($self->html_report_error()); |
|
################################### |
################################### |
# Determine table structure |
# Determine table structure |
################################### |
################################### |
Line 601 sub compute {
|
Line 595 sub compute {
|
while (my ($parm,$value) = each(%parameters)) { |
while (my ($parm,$value) = each(%parameters)) { |
last if ($self->blackout()); |
last if ($self->blackout()); |
next if ($parm !~ /^(parameter_.*)_problemstatus$/); |
next if ($parm !~ /^(parameter_.*)_problemstatus$/); |
if ($parameters{$1.'_answerdate'} ne '' && |
next if ($parameters{$1.'_answerdate'}<time); |
$parameters{$1.'_answerdate'} < time) { |
|
next; |
|
} |
|
if (lc($value) eq 'no') { |
if (lc($value) eq 'no') { |
# We must blackout this sheet |
# We must blackout this sheet |
$self->blackout(1); |
$self->blackout(1); |
Line 699 These rows are saved in the students dir
|
Line 690 These rows are saved in the students dir
|
######################################################## |
######################################################## |
######################################################## |
######################################################## |
sub load_cached_export_rows { |
sub load_cached_export_rows { |
%Exportrows = undef; |
undef(%Exportrows); |
my @tmp = &Apache::lonnet::dump('nohist_calculatedsheets_'. |
my @tmp = &Apache::lonnet::dump('nohist_calculatedsheets_'. |
$ENV{'request.course.id'}, |
$ENV{'request.course.id'}, |
$current_domain,$current_name,undef); |
$current_domain,$current_name,undef); |
Line 745 sub export_data {
|
Line 736 sub export_data {
|
! exists($Exportrows{$symb}) || ! defined($Exportrows{$symb}) || |
! exists($Exportrows{$symb}) || ! defined($Exportrows{$symb}) || |
! $self->check_expiration_time($Exportrows{$symb}->{'time'}) || |
! $self->check_expiration_time($Exportrows{$symb}->{'time'}) || |
! exists($Exportrows{$symb}->{$self->{'filename'}}) || |
! exists($Exportrows{$symb}->{$self->{'filename'}}) || |
! defined($Exportrows{$symb}->{$self->{'filename'}})) { |
! defined($Exportrows{$symb}->{$self->{'filename'}}) || |
|
! ref($Exportrows{$symb}->{$self->{'filename'}}) |
|
) { |
$self->compute(); |
$self->compute(); |
} |
} |
my @Data; |
my @Data = @{$Exportrows{$symb}->{$self->{'filename'}}}; |
if ($self->badcalc()) { |
if ($Data[0] =~ /^(.*)___=___/) { |
@Data = (); |
$self->{'sheetname'} = $1; |
} else { |
$Data[0] =~ s/^(.*)___=___//; |
@Data = @{$Exportrows{$symb}->{$self->{'filename'}}}; |
} |
if ($Data[0] =~ /^(.*)___=___/) { |
for (my $i=0;$i<$#Data;$i++) { |
$self->{'sheetname'} = $1; |
$Data[$i]="'".$Data[$i]."'" if ($Data[$i]=~/\D/ && defined($Data[$i])); |
$Data[0] =~ s/^(.*)___=___//; |
|
} |
|
for (my $i=0;$i<$#Data;$i++) { |
|
if ($Data[$i]=~/\D/ && defined($Data[$i])) { |
|
$Data[$i]="'".$Data[$i]."'"; |
|
} |
|
} |
|
} |
} |
return @Data; |
return @Data; |
} |
} |
Line 784 sub save_export_data {
|
Line 770 sub save_export_data {
|
return if ($self->temporary()); |
return if ($self->temporary()); |
my $student = $self->{'name'}.':'.$self->{'domain'}; |
my $student = $self->{'name'}.':'.$self->{'domain'}; |
my $symb = $self->{'symb'}; |
my $symb = $self->{'symb'}; |
if ($self->badcalc()){ |
|
# do not save data away when calculations have not been done properly. |
|
delete($Exportrows{$symb}); |
|
return; |
|
} |
|
if (! exists($Exportrows{$symb}) || |
if (! exists($Exportrows{$symb}) || |
! exists($Exportrows{$symb}->{$self->{'filename'}})) { |
! exists($Exportrows{$symb}->{$self->{'filename'}})) { |
return; |
return; |