--- loncom/interface/Attic/lonspreadsheet.pm	2002/12/13 19:11:00	1.159
+++ loncom/interface/Attic/lonspreadsheet.pm	2003/03/14 21:34:04	1.160.2.1
@@ -1,5 +1,5 @@
 #
-# $Id: lonspreadsheet.pm,v 1.159 2002/12/13 19:11:00 matthew Exp $
+# $Id: lonspreadsheet.pm,v 1.160.2.1 2003/03/14 21:34:04 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -2094,8 +2094,27 @@ sub parmval {
     # second, check map parms
     my $thisparm = $parmhash{$symbparm};
     return $thisparm if (defined($thisparm));
+
     # first, check default
-    return &Apache::lonnet::metadata($fn,$rwhat.'.default');
+    $thisparm = &Apache::lonnet::metadata($fn,$rwhat.'.default');
+    return $thisparm if (defined($thisparm));
+
+    #Cascade Up
+    my $space=$what;
+    $space=~s/\.\w+$//;
+    if ($space ne '0') {
+	my @parts=split(/_/,$space);
+	my $id=pop(@parts);
+	my $part=join('_',@parts);
+	if ($part eq '') { $part='0'; }
+	my $newwhat=$rwhat;
+	$newwhat=~s/\Q$space\E/$part/;
+	my $partgeneral=&parmval($newwhat,$symb,$uname,$udom,$csec);
+	if (defined($partgeneral)) { return $partgeneral; }
+    }
+
+    #nothing defined
+    return '';
 }
 
 
@@ -2391,7 +2410,7 @@ sub updatestudentassesssheet {
         unless ((exists($sheet->{'rowlabel'}->{$usy}) && 
                  (defined($sheet->{'rowlabel'}->{$usy})) || (!$1) ||
                  ($formula =~ /^(~~~|---)/) )) {
-            $f{$_}='!!! Obsolete';
+            $f{$cell}='!!! Obsolete';
             $changed=1;
         }
     }