version 1.29, 2005/03/10 17:33:57
|
version 1.32, 2005/05/15 03:06:59
|
Line 74 sub initialize {
|
Line 74 sub initialize {
|
} |
} |
|
|
sub initialize_package { |
sub initialize_package { |
$current_course = $ENV{'request.course.id'}; |
$current_course = $env{'request.course.id'}; |
&initialize_sequence_cache(); |
&initialize_sequence_cache(); |
&load_cached_export_rows(); |
&load_cached_export_rows(); |
} |
} |
|
|
sub ensure_correct_sequence_data { |
sub ensure_correct_sequence_data { |
if ($current_course ne $ENV{'request.course.id'}) { |
if ($current_course ne $env{'request.course.id'}) { |
&initialize_sequence_cache(); |
&initialize_sequence_cache(); |
$current_course = $ENV{'request.course.id'}; |
$current_course = $env{'request.course.id'}; |
} |
} |
return; |
return; |
} |
} |
Line 101 sub initialize_sequence_cache {
|
Line 101 sub initialize_sequence_cache {
|
for my $sequence ($navmap->getById('0.0'), @all_sequences) { |
for my $sequence ($navmap->getById('0.0'), @all_sequences) { |
if ($navmap->hasResource($sequence,sub { shift->is_problem(); }, 0)){ |
if ($navmap->hasResource($sequence,sub { shift->is_problem(); }, 0)){ |
push(@Sequences,$sequence); |
push(@Sequences,$sequence); |
|
&get_resources($sequence); |
} |
} |
} |
} |
} |
} |
|
|
|
my %res_memoize; |
sub get_resources { |
sub get_resources { |
my ($seq) = @_; |
my ($seq) = @_; |
|
if (exists($res_memoize{$seq->symb()})) { |
|
return @{$res_memoize{$seq->symb()}}; |
|
} |
return () if (! defined($navmap) || ! ref($navmap)); |
return () if (! defined($navmap) || ! ref($navmap)); |
my @resources = $navmap->retrieveResources($seq, |
my @resources = $navmap->retrieveResources($seq, |
sub { shift->is_problem(); }, |
sub { shift->is_problem(); }, |
0,0,0); |
0,0,0); |
|
$res_memoize{$seq->symb()}=\@resources; |
return @resources; |
return @resources; |
} |
} |
|
|
sub clear_package { |
sub clear_package { |
undef(@Sequences); |
undef(@Sequences); |
undef(%Exportrows); |
undef(%Exportrows); |
|
undef(%res_memoize); |
&Apache::assesscalc::clear_package(); |
&Apache::assesscalc::clear_package(); |
} |
} |
|
|
Line 137 sub get_html_title {
|
Line 144 sub get_html_title {
|
my $self = shift; |
my $self = shift; |
my ($name,$desc,$time) = $self->get_title(); |
my ($name,$desc,$time) = $self->get_title(); |
my $title = '<h1>'.$name; |
my $title = '<h1>'.$name; |
if ($ENV{'user.name'} ne $self->{'name'} && |
if ($env{'user.name'} ne $self->{'name'} && |
$ENV{'user.domain'} ne $self->{'domain'}) { |
$env{'user.domain'} ne $self->{'domain'}) { |
$title .= ' '.&Apache::loncommon::aboutmewrapper |
$title .= ' '.&Apache::loncommon::aboutmewrapper |
($self->{'name'}.'@'.$self->{'domain'}, |
($self->{'name'}.'@'.$self->{'domain'}, |
$self->{'name'},$self->{'domain'}); |
$self->{'name'},$self->{'domain'}); |
Line 173 sub outsheet_html {
|
Line 180 sub outsheet_html {
|
#################################### |
#################################### |
my @AssessFileNames = $self->othersheets('assesscalc'); |
my @AssessFileNames = $self->othersheets('assesscalc'); |
my $editing_is_allowed = &Apache::lonnet::allowed('mgr', |
my $editing_is_allowed = &Apache::lonnet::allowed('mgr', |
$ENV{'request.course.id'}); |
$env{'request.course.id'}); |
#################################### |
#################################### |
# Report any calculation errors # |
# Report any calculation errors # |
#################################### |
#################################### |
Line 221 END
|
Line 228 END
|
$r->print($tableheader); |
$r->print($tableheader); |
# |
# |
# Print out template row |
# Print out template row |
if (exists($ENV{'request.role.adv'}) && $ENV{'request.role.adv'}) { |
if (exists($env{'request.role.adv'}) && $env{'request.role.adv'}) { |
$r->print('<tr><td>Template</td><td> </td>'. |
$r->print('<tr><td>Template</td><td> </td>'. |
$self->html_template_row($num_uneditable, |
$self->html_template_row($num_uneditable, |
$importcolor)."</tr>\n"); |
$importcolor)."</tr>\n"); |
Line 234 END
|
Line 241 END
|
$r->print("</table>\n"); |
$r->print("</table>\n"); |
# |
# |
# Prepare to output rows |
# Prepare to output rows |
if (exists($ENV{'request.role.adv'}) && $ENV{'request.role.adv'}) { |
if (exists($env{'request.role.adv'}) && $env{'request.role.adv'}) { |
$tableheader =<<"END"; |
$tableheader =<<"END"; |
</p><p> |
</p><p> |
<table border="2"> |
<table border="2"> |
Line 319 sub assess_file_selector {
|
Line 326 sub assess_file_selector {
|
if (!defined($AssessFiles) || ! @$AssessFiles) { |
if (!defined($AssessFiles) || ! @$AssessFiles) { |
return ''; |
return ''; |
} |
} |
return '' if (! &Apache::lonnet::allowed('mgr',$ENV{'request.course.id'})); |
return '' if (! &Apache::lonnet::allowed('mgr',$env{'request.course.id'})); |
my $element_name = 'FileSelect_'.$row; |
my $element_name = 'FileSelect_'.$row; |
my $load_dialog = '<select size="1" name="'.$element_name.'" '. |
my $load_dialog = '<select size="1" name="'.$element_name.'" '. |
'onchange="'. |
'onchange="'. |
Line 496 END
|
Line 503 END
|
sub compute { |
sub compute { |
my $self = shift; |
my $self = shift; |
my ($r) = @_; |
my ($r) = @_; |
my $connection = $r->connection(); |
|
if ($connection->aborted()) { $self->cleanup; return; } |
|
if (! defined($current_course) || |
if (! defined($current_course) || |
$current_course ne $ENV{'request.course.id'} || |
$current_course ne $env{'request.course.id'} || |
! @Sequences ) { |
! @Sequences ) { |
$current_course = $ENV{'request.course.id'}; |
$current_course = $env{'request.course.id'}; |
&clear_package(); |
&clear_package(); |
&initialize_sequence_cache(); |
&initialize_sequence_cache(); |
} |
} |
Line 515 sub compute {
|
Line 520 sub compute {
|
my %c = $self->constants(); |
my %c = $self->constants(); |
foreach my $seq (@Sequences) { |
foreach my $seq (@Sequences) { |
foreach my $resource (&get_resources($seq)) { |
foreach my $resource (&get_resources($seq)) { |
if ($connection->aborted()) { $self->cleanup(); return; } |
|
my $rownum = $self->get_row_number_from_key($resource->symb); |
my $rownum = $self->get_row_number_from_key($resource->symb); |
my $cell = 'A'.$rownum; |
my $cell = 'A'.$rownum; |
my $assess_filename = 'Default'; |
my $assess_filename = 'Default'; |
Line 525 sub compute {
|
Line 529 sub compute {
|
$self->{'row_source'}->{$rownum} = $assess_filename; |
$self->{'row_source'}->{$rownum} = $assess_filename; |
} |
} |
$f{$cell} = $resource->symb.'__&&&__'.$assess_filename; |
$f{$cell} = $resource->symb.'__&&&__'.$assess_filename; |
if ($connection->aborted()) { $self->cleanup(); return; } |
|
my $assessSheet; |
my $assessSheet; |
$assessSheet = Apache::assesscalc->new($self->{'name'}, |
$assessSheet = Apache::assesscalc->new($self->{'name'}, |
$self->{'domain'}, |
$self->{'domain'}, |
Line 539 sub compute {
|
Line 542 sub compute {
|
$assessSheet->get_title(),$rownum,$assessSheet->calcerror())); |
$assessSheet->get_title(),$rownum,$assessSheet->calcerror())); |
} |
} |
# |
# |
if ($connection->aborted()) { $self->cleanup(); return; } |
|
if ($assessSheet->blackout()) { |
if ($assessSheet->blackout()) { |
$self->blackout(1); |
$self->blackout(1); |
$self->{'blackout_rows'}->{$rownum} = 1; |
$self->{'blackout_rows'}->{$rownum} = 1; |
Line 632 These rows are saved in the courses dire
|
Line 634 These rows are saved in the courses dire
|
sub load_cached_export_rows { |
sub load_cached_export_rows { |
undef(%Exportrows); |
undef(%Exportrows); |
my @tmp = &Apache::lonnet::dump('nohist_calculatedsheets', |
my @tmp = &Apache::lonnet::dump('nohist_calculatedsheets', |
$ENV{'course.'.$ENV{'request.course.id'}.'.domain'}, |
$env{'course.'.$env{'request.course.id'}.'.domain'}, |
$ENV{'course.'.$ENV{'request.course.id'}.'.num'},undef); |
$env{'course.'.$env{'request.course.id'}.'.num'},undef); |
my %Selected_Assess_Sheet; |
my %Selected_Assess_Sheet; |
if ($tmp[0] =~ /^error/) { |
if ($tmp[0] =~ /^error/) { |
&Apache::lonnet::logthis('unable to read cached student export rows '. |
&Apache::lonnet::logthis('unable to read cached student export rows '. |
'for course '.$ENV{'request.course.id'}); |
'for course '.$env{'request.course.id'}); |
return; |
return; |
} |
} |
my %tmp = @tmp; |
my %tmp = @tmp; |