--- loncom/interface/Attic/lonspreadsheet.pm	2003/03/11 15:00:47	1.177
+++ loncom/interface/Attic/lonspreadsheet.pm	2003/05/27 15:50:30	1.179
@@ -1,5 +1,5 @@
 #
-# $Id: lonspreadsheet.pm,v 1.177 2003/03/11 15:00:47 albertel Exp $
+# $Id: lonspreadsheet.pm,v 1.179 2003/05/27 15:50:30 www Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -57,6 +57,7 @@ use strict;
 use Apache::Constants qw(:common :http);
 use Apache::lonnet;
 use Apache::lonhtmlcommon;
+use Apache::lonmenu;
 use HTML::Entities();
 
 # --------------------------------------------------------- Various form fields
@@ -152,9 +153,9 @@ sub handler {
                                              $ENV{'form.ufn'} eq 'default')) {
         $ENV{'form.ufn'}='default_'.$1;
     }
-    if (!$ENV{'form.ufn'} || $ENV{'form.ufn'} eq 'default') {
-        $ENV{'form.ufn'}='course_default_'.$sheettype;
-    }
+#    if (!$ENV{'form.ufn'} || $ENV{'form.ufn'} eq 'default') {
+#        $ENV{'form.ufn'}='course_default_'.$sheettype;
+#    }
     #
     # Interactive loading of specific sheet?
     #
@@ -244,7 +245,8 @@ ENDSCRIPT
               &hiddenfield('udom',$ENV{'form.udom'}).
               &hiddenfield('usymb',$ENV{'form.usymb'}).
               &hiddenfield('unewfield','').
-              &hiddenfield('unewformula',''));
+              &hiddenfield('unewformula','').
+              &Apache::lonmenu::regflush());
     $r->rflush();
     #
     # Full recalc?
@@ -352,6 +354,7 @@ ENDSCRIPT
         $oldsheets{'course'} ne $sheet->{'cid'}) {
         undef %oldsheets;
         undef %loadedcaches;
+        &Apache::lonspreadsheet::Spreadsheet::clear_package_variables();
     }
     $oldsheets{'course'} = $sheet->{'cid'};
     #
@@ -534,6 +537,25 @@ my %defaultsheets;
 my %rowlabel_cache;
 #my %oldsheets;
 
+sub clear_package_variables {
+    undef %courseopt;
+    undef %useropt;
+    undef %parmhash;
+    undef %Section;
+    undef %expiredates;
+    undef $cachedassess;
+    undef %cachedstores;
+    undef %starttimes;
+    undef %usedtimes;
+    undef %numbertimes;
+    undef $includedir;
+    undef %spreadsheets;
+    undef %courserdatas;
+    undef %userrdatas;
+    undef %defaultsheets;
+    undef %rowlabel_cache;
+}
+
 sub complete_recalc {
     my $self = shift;
     undef %spreadsheets;
@@ -751,6 +773,15 @@ sub new {
     #
     my ($uname,$udom,$stype,$usymb)=@_;
     #
+    if (! exists($Section{$uname.':'.$udom})) {
+        my $classlist = &Apache::loncoursedata::get_classlist();
+        #
+        foreach my $student (keys(%$classlist)) {
+            my ($studentDomain,$studentName,undef,undef,undef,$studentSection,
+                undef,undef) = @{$classlist->{$student}};
+            $Section{$studentName.':'.$studentDomain} = $studentSection;
+        }
+    }
     my $self = {
         uname => $uname,
         udom  => $udom,