--- 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)=@_;