--- loncom/interface/spreadsheet/Spreadsheet.pm 2003/05/16 20:55:11 1.1 +++ loncom/interface/spreadsheet/Spreadsheet.pm 2003/05/23 14:52:51 1.4 @@ -1,5 +1,5 @@ # -# $Id: Spreadsheet.pm,v 1.1 2003/05/16 20:55:11 matthew Exp $ +# $Id: Spreadsheet.pm,v 1.4 2003/05/23 14:52:51 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -97,6 +97,11 @@ sub new { chome => $ENV{'course.'.$ENV{'request.course.id'}.'.home'}, coursedesc => $ENV{'course.'.$ENV{'request.course.id'}.'.description'}, coursefilename => $ENV{'request.course.fn'}, + temporary => '', + # + # blackout is used to determine if any data needs to be hidden from the + # student. + blackout => 0, # # Data storage formulas => {}, @@ -1396,6 +1401,8 @@ sub save { my $self = shift; my ($makedef)=@_; my $cid=$self->{'cid'}; + # If we are saving it, it must not be temporary + $self->temporary(0); if (&Apache::lonnet::allowed('opa',$cid)) { my %f=$self->formulas(); my $stype = $self->{'type'}; @@ -1438,6 +1445,7 @@ sub save_tmp { $self->{'filename'}; $fn=~s/\W/\_/g; $fn=$Apache::lonnet::tmpdir.$fn.'.tmp'; + $self->temporary(1); my $fh; if ($fh=Apache::File->new('>'.$fn)) { my %f = $self->formulas(); @@ -1468,12 +1476,23 @@ sub load_tmp { } $spreadsheet_file->close(); } + # flag the sheet as temporary + $self->temporary(1); $self->formulas(\%formulas); $self->set_row_sources(); $self->set_row_numbers(); return; } +sub temporary { + my $self=shift; + if (@_) { + ($self->{'temporary'})= @_; + } + $self->logthis('temporary = '.$self->{'temporary'}); + return $self->{'temporary'}; +} + sub modify_cell { # studentcalc overrides this my $self = shift; @@ -1500,12 +1519,20 @@ sub othersheets { my %results=&Apache::lonnet::dump($stype.'_spreadsheets', $self->{'cdom'}, $self->{'cnum'}); my ($tmp) = keys(%results); - unless ($tmp =~ /^(con_lost|error|no_such_host)/i ) { + if ($tmp =~ /^(con_lost|error|no_such_host)/i ) { + @alternatives = ('Default'); + } else { @alternatives = sort (keys(%results)); } return @alternatives; } +sub blackout { + my $self = shift; + $self->{'blackout'} = $_[0] if (@_); + return $self->{'blackout'}; +} + sub get_row { my $self = shift; my ($n)=@_;