--- loncom/interface/Attic/lonspreadsheet.pm	2002/09/16 20:09:45	1.110
+++ loncom/interface/Attic/lonspreadsheet.pm	2002/09/27 20:40:19	1.112
@@ -1,5 +1,5 @@
 #
-# $Id: lonspreadsheet.pm,v 1.110 2002/09/16 20:09:45 www Exp $
+# $Id: lonspreadsheet.pm,v 1.112 2002/09/27 20:40:19 matthew Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -852,7 +852,7 @@ sub sett {
     }
     # Deal with the normal cells
     foreach (keys(%f)) {
-	if (($f{$_}) && ($_!~/template\_/)) {
+	if (exists($f{$_}) && ($_!~/template\_/)) {
             my $matches=($_=~/^$pattern(\d+)/);
             if  (($matches) && ($1)) {
 	        unless ($f{$_}=~/^\!/) {
@@ -1226,8 +1226,14 @@ sub rown {
                 if ($vl eq '') {
                     $vl='<font size=+2 color='.$bgcolor.'>&#35;</font>';
                 }
-                $rowdata.='<td bgcolor='.$bgcolor.'>'.
-                    '<a href="javascript:celledit('.$fm.');">'.$vl.'</a></td>';
+                $rowdata.='<td bgcolor='.$bgcolor.'>';
+                if ($ENV{'request.role'} =~ /^st\./) {
+                    $rowdata.=$vl;
+                } else {
+                    $rowdata.='<a href="javascript:celledit('.$fm.');">'.
+                        $vl.'</a>';
+                }
+                $rowdata.='</td>';
             } else {
                 $rowdata.='<td bgcolor='.$bgcolor.'>&nbsp;'.$vl.'&nbsp;</td>';
             }
@@ -1299,7 +1305,7 @@ sub outsheet {
         push (@sortby, $safeeval->reval('$f{"A'.$row.'"}'));
         push (@sortidx, $row-1);
     }
-    @sortidx=sort { $sortby[$a] cmp $sortby[$b]; } @sortidx;
+    @sortidx=sort { lc($sortby[$a]) cmp lc($sortby[$b]); } @sortidx;
     #
     # Determine the type of child spreadsheets
     my $what='Student';
@@ -2412,17 +2418,14 @@ sub cachedssheets {
 # Interactive call to screen
 #
 #
-
-
 sub handler {
     my $r=shift;
 
-     my $loaderror=&Apache::lonnet::overloaderror($r);
-     if ($loaderror) { return $loaderror; }
-     $loaderror=
-        &Apache::lonnet::overloaderror($r,
-          $ENV{'course.'.$ENV{'request.course.id'}.'.home'});
-     if ($loaderror) { return $loaderror; } 
+    my $loaderror=&Apache::lonnet::overloaderror($r);
+    if ($loaderror) { return $loaderror; }
+    $loaderror= &Apache::lonnet::overloaderror($r,
+                      $ENV{'course.'.$ENV{'request.course.id'}.'.home'});
+    if ($loaderror) { return $loaderror; } 
 
     if ($r->header_only) {
         $r->content_type('text/html');
@@ -2442,6 +2445,10 @@ sub handler {
     # Get query string for limited number of parameters
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
                                             ['uname','udom','usymb','ufn']);
+    if ($ENV{'request.role'} =~ /^st\./) {
+        delete $ENV{'form.unewfield'}   if (exists($ENV{'form.unewfield'}));
+        delete $ENV{'form.unewformula'} if (exists($ENV{'form.unewformula'}));
+    }
     if (($ENV{'form.usymb'}=~/^\_(\w+)/) && (!$ENV{'form.ufn'})) {
         $ENV{'form.ufn'}='default_'.$1;
     }
@@ -2468,7 +2475,8 @@ sub handler {
     $r->send_http_header;
     # Screen output
     $r->print('<html><head><title>LON-CAPA Spreadsheet</title>');
-    $r->print(<<ENDSCRIPT);
+    if ($ENV{'request.role'} !~ /^st\./) {
+        $r->print(<<ENDSCRIPT);
 <script language="JavaScript">
 
     function celledit(cn,cf) {
@@ -2494,6 +2502,7 @@ sub handler {
 
 </script>
 ENDSCRIPT
+    }
     $r->print('</head>'.&Apache::loncommon::bodytag('Grades Spreadsheet').
               '<form action="'.$r->uri.'" name=sheet method=post>');
     $r->print(&hiddenfield('uname',$ENV{'form.uname'}).