[LON-CAPA-cvs] cvs: loncom /interface lonspreadsheet.pm

matthew lon-capa-cvs@mail.lon-capa.org
Thu, 05 Dec 2002 15:31:05 -0000


matthew		Thu Dec  5 10:31:05 2002 EDT

  Modified files:              
    /loncom/interface	lonspreadsheet.pm 
  Log:
  Changes to fix bug 1031 - no longer print out spreadsheet cells as editable
      when the users role is that of a student.
  Omit the Template row when displaying information to the student.
  Rename the 'Export' row as 'Summary' because (from the students perspective)
      there is nothing to export the row to.
  
  
Index: loncom/interface/lonspreadsheet.pm
diff -u loncom/interface/lonspreadsheet.pm:1.154 loncom/interface/lonspreadsheet.pm:1.155
--- loncom/interface/lonspreadsheet.pm:1.154	Wed Dec  4 16:49:33 2002
+++ loncom/interface/lonspreadsheet.pm	Thu Dec  5 10:31:05 2002
@@ -1,5 +1,5 @@
 #
-# $Id: lonspreadsheet.pm,v 1.154 2002/12/04 21:49:33 matthew Exp $
+# $Id: lonspreadsheet.pm,v 1.155 2002/12/05 15:31:05 matthew Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -1284,6 +1284,7 @@
 sub outsheet_html  {
     my ($sheet,$r) = @_;
     my ($num_uneditable,$realm,$row_type);
+    my $requester_is_student = ($ENV{'request.role'} =~ /^st\./);
     if ($sheet->{'sheettype'} eq 'assesscalc') {
         $num_uneditable = 1;
         $realm = 'Assessment';
@@ -1328,34 +1329,39 @@
     ####################################
     # Print out template row
     ####################################
-    my ($rowlabel,@rowdata) = &get_row($sheet,'-');
-    my $row_html = '<tr><td>'.&format_html_rowlabel($sheet,$rowlabel).'</td>';
-    my $num_cols_output = 0;
-    foreach my $cell (@rowdata) {
-        if ($num_cols_output++ < $num_uneditable) {
-            $row_html .= '<td bgcolor="#FFDDDD">';
-            $row_html .= &html_uneditable_cell($cell,'#FFDDDD');
-        } else {
-            $row_html .= '<td bgcolor="#EOFFDD">';
-            $row_html .= &html_editable_cell($cell,'#E0FFDD');
+    my ($num_cols_output,$row_html,$rowlabel,@rowdata);
+    
+    if (! $requester_is_student) {
+        ($rowlabel,@rowdata) = &get_row($sheet,'-');
+        $row_html = '<tr><td>'.&format_html_rowlabel($sheet,$rowlabel).'</td>';
+        $num_cols_output = 0;
+        foreach my $cell (@rowdata) {
+            if ($requester_is_student || 
+                $num_cols_output++ < $num_uneditable) {
+                $row_html .= '<td bgcolor="#FFDDDD">';
+                $row_html .= &html_uneditable_cell($cell,'#FFDDDD');
+            } else {
+                $row_html .= '<td bgcolor="#EOFFDD">';
+                $row_html .= &html_editable_cell($cell,'#E0FFDD');
+            }
+            $row_html .= '</td>';
         }
-        $row_html .= '</td>';
+        $row_html.= "</tr>\n";
+        $r->print($row_html);
     }
-    $row_html.= "</tr>\n";
-    $r->print($row_html);
     ####################################
     # Print out summary/export row
     ####################################
     ($rowlabel,@rowdata) = &get_row($sheet,'0');
-    $row_html = '<tr><td>'.&format_html_rowlabel($sheet,$rowlabel).'</td>';
+    $row_html = '<tr><td>'.&format_html_rowlabel($sheet,'Summary').'</td>';
     $num_cols_output = 0;
     foreach my $cell (@rowdata) {
-        if ($num_cols_output++ < 26) {
+        if ($num_cols_output++ < 26 && ! $requester_is_student) {
             $row_html .= '<td bgcolor="#CCCCFF">';
             $row_html .= &html_editable_cell($cell,'#CCCCFF');
         } else {
             $row_html .= '<td bgcolor="#DDCCFF">';
-            $row_html .= &html_uneditable_cell(undef,'#CCCCFF');
+            $row_html .= &html_uneditable_cell($cell,'#CCCCFF');
         }
         $row_html .= '</td>';
     }
@@ -1432,7 +1438,7 @@
             $bgcolor='#FFDDDD' if ($shown_cells < $num_uneditable);
             #
             $row_html.='<td bgcolor='.$bgcolor.'>';
-            if ($shown_cells < $num_uneditable) {
+            if ($requester_is_student || $shown_cells < $num_uneditable) {
                 $row_html .= &html_uneditable_cell($cell,$bgcolor);
             } else {
                 $row_html .= &html_editable_cell($cell,$bgcolor);