--- loncom/interface/spreadsheet/studentcalc.pm 2005/05/13 20:30:14 1.31 +++ loncom/interface/spreadsheet/studentcalc.pm 2006/10/02 17:04:33 1.41 @@ -1,5 +1,5 @@ # -# $Id: studentcalc.pm,v 1.31 2005/05/13 20:30:14 albertel Exp $ +# $Id: studentcalc.pm,v 1.41 2006/10/02 17:04:33 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -59,6 +59,9 @@ use Apache::assesscalc(); use HTML::Entities(); use Time::HiRes; use Apache::lonlocal; +use lib '/home/httpd/lib/perl/'; +use LONCAPA; + @Apache::studentcalc::ISA = ('Apache::Spreadsheet'); @@ -124,6 +127,7 @@ sub clear_package { undef(@Sequences); undef(%Exportrows); undef(%res_memoize); + undef($navmap); &Apache::assesscalc::clear_package(); } @@ -270,8 +274,17 @@ END } foreach my $Sequence (@Sequences) { $r->print("

".$Sequence->compTitle."

\n"); + + my @resources = &get_resources($Sequence); + my $first_rownum = + $self->get_row_number_from_key($resources[0]->symb); + my $last_rownum = + $self->get_row_number_from_key($resources[-1]->symb); + $r->print(&assess_file_selector([$first_rownum, $last_rownum], + undef, \@AssessFileNames)); + $r->print($tableheader); - foreach my $resource (&get_resources($Sequence)) { + foreach my $resource (@resources) { my $rownum = $self->get_row_number_from_key($resource->symb); my $assess_filename = $self->{'row_source'}->{$rownum}; my $row_output = ''; @@ -282,7 +295,7 @@ END ''.$resource->compTitle.'
'; $row_output .= &assess_file_selector($rownum, $assess_filename, @@ -290,7 +303,7 @@ END ''; } else { $row_output .= 'Go To'; $row_output .= ''.$resource->compTitle.''; } @@ -327,12 +340,25 @@ sub assess_file_selector { return ''; } return '' if (! &Apache::lonnet::allowed('mgr',$env{'request.course.id'})); - my $element_name = 'FileSelect_'.$row; + my $element_name; + my $source_row = $row; + if (ref($row)) { + my ($first_rownum, $last_rownum) = @$row; + $element_name = "FileSelect_${first_rownum}_${last_rownum}"; + $source_row = "${first_rownum}:${last_rownum}"; + } else { + $element_name = 'FileSelect_'.$row; + } my $load_dialog = '