--- loncom/interface/spreadsheet/studentcalc.pm	2003/05/29 13:39:38	1.8
+++ loncom/interface/spreadsheet/studentcalc.pm	2003/06/23 19:58:18	1.12
@@ -1,5 +1,5 @@
 #
-# $Id: studentcalc.pm,v 1.8 2003/05/29 13:39:38 matthew Exp $
+# $Id: studentcalc.pm,v 1.12 2003/06/23 19:58:18 matthew Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -65,6 +65,7 @@ my %Exportrows = ();
 my $current_course;
 
 sub initialize {
+    &Apache::assesscalc::initialize();
     &initialize_sequence_cache();
 }
 
@@ -146,6 +147,8 @@ sub parent_link {
 sub outsheet_html {
     my $self = shift;
     my ($r) = @_;
+    my $importcolor = '#FFFF66';
+    my $exportcolor = '#88FF88';
     ####################################
     # Get the list of assessment files #
     ####################################
@@ -162,7 +165,7 @@ sub outsheet_html {
 <table border="2">
 <tr>
   <th colspan="2" rowspan="2"><font size="+2">Student</font></th>
-  <td bgcolor="#FFDDDD" colspan="$num_uneditable">
+  <td bgcolor="$importcolor" colspan="$num_uneditable">
       <b><font size="+1">Import</font></b></td>
   <td colspan="$num_left">
       <b><font size="+1">Calculations</font></b></td>
@@ -171,7 +174,7 @@ END
     my $label_num = 0;
     foreach (split(//,'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz')){
         if ($label_num<$num_uneditable) { 
-            $tableheader .='<td bgcolor="#FFDDDD">';
+            $tableheader .='<td bgcolor="'.$importcolor.'">';
         } else {
             $tableheader .='<td>';
         }
@@ -190,12 +193,13 @@ END
         # Print out template row
         if (exists($ENV{'request.role.adv'}) && $ENV{'request.role.adv'}) {
             $r->print('<tr><td>Template</td><td>&nbsp;</td>'.
-                      $self->html_template_row($num_uneditable)."</tr>\n");
+                      $self->html_template_row($num_uneditable,
+                                               $importcolor)."</tr>\n");
         }
         #
         # Print out summary/export row
         $r->print('<tr><td>Summary</td><td>0</td>'.
-                  $self->html_export_row()."</tr>\n");
+                  $self->html_export_row($exportcolor)."</tr>\n");
     }
     $r->print("</table>\n");
     #
@@ -258,7 +262,8 @@ END
                 $row_output .= 
                     '<td colspan="52">Unavailable at this time</td></tr>'."\n";
             } else {
-                $row_output .= $self->html_row($num_uneditable,$rownum).
+                $row_output .= $self->html_row($num_uneditable,$rownum,
+                                               $exportcolor,$importcolor).
                     "</tr>\n";
             }
             $r->print($row_output);
@@ -332,7 +337,7 @@ sub csv_rows {
     #
     # Write a header row
     $self->csv_output_row($filehandle,undef,
-                          ('Container','Assessment title'));
+                          ('Sequence or Folder','Assessment title'));
     #
     # Write each assessments row
     if (scalar(@Sequences)< 1) {
@@ -385,18 +390,6 @@ sub outsheet_recursive_excel {
     my ($r) = @_;
 } 
 
-sub set_row_sources {
-    my $self = shift;
-    while (my ($cell,$value) = each(%{$self->{'formulas'}})) {
-        next if ($cell !~ /^A(\d+)/ && $1 > 0);
-        my $row = $1;
-        (undef,$value) = split('__&&&__',$value);
-        $value = 'Default' if (! defined($value));
-        $self->{'row_source'}->{$row} = $value;
-    }
-    return;
-}
-
 sub compute {
     my $self = shift;
     $self->logthis('computing');
@@ -474,6 +467,20 @@ sub compute {
     $Exportrows{$student}->{'data'} = \@exportarray;
     # save export row
     $self->save_export_data();
+    #
+    $self->save() if ($self->need_to_save());
+    return;
+}
+
+sub set_row_sources {
+    my $self = shift;
+    while (my ($cell,$value) = each(%{$self->{'formulas'}})) {
+        next if ($cell !~ /^A(\d+)/ && $1 > 0);
+        my $row = $1;
+        (undef,$value) = split('__&&&__',$value);
+        $value = 'Default' if (! defined($value));
+        $self->{'row_source'}->{$row} = $value;
+    }
     return;
 }
 
@@ -485,6 +492,7 @@ sub set_row_numbers {
         next if ($row == 0);
         my ($symb,undef) = split('__&&&__',$formula);
         $self->{'row_numbers'}->{$symb} = $row;
+        $self->{'maxrow'} = $1 if ($1 > $self->{'maxrow'});
     }
 }