--- loncom/interface/Attic/lonspreadsheet.pm 2002/11/19 19:20:50 1.142
+++ loncom/interface/Attic/lonspreadsheet.pm 2002/11/26 14:58:41 1.150
@@ -1,5 +1,5 @@
#
-# $Id: lonspreadsheet.pm,v 1.142 2002/11/19 19:20:50 matthew Exp $
+# $Id: lonspreadsheet.pm,v 1.150 2002/11/26 14:58:41 matthew Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1149,7 +1149,7 @@ sub exportdata {
sub update_student_sheet{
- my ($sheet,$c) = @_;
+ my ($sheet,$r,$c) = @_;
# Load in the studentcalc sheet
&readsheet($sheet,'default_studentcalc');
# Determine the structure (contained assessments, etc) of the sheet
@@ -1157,7 +1157,7 @@ sub update_student_sheet{
# Load in the cached sheets for this student
&cachedssheets($sheet);
# Load in the (possibly cached) data from the assessment sheets
- &loadstudent($sheet,$c);
+ &loadstudent($sheet,$r,$c);
# Compute the sheet
&calcsheet($sheet);
}
@@ -1189,7 +1189,7 @@ sub sort_indicies {
my @sortidx=();
#
if ($sheet->{'sheettype'} eq 'classcalc') {
- my @sortby=();
+ my @sortby=(undef);
# Skip row 0
for (my $row=1;$row<=$sheet->{'maxrow'};$row++) {
my (undef,$sname,$sdom,$fullname,$section,$id) =
@@ -1199,9 +1199,9 @@ sub sort_indicies {
}
@sortidx = sort { $sortby[$a] cmp $sortby[$b]; } @sortidx;
} elsif ($sheet->{'sheettype'} eq 'studentcalc') {
- my @sortby=();
+ my @sortby1=(undef);
+ my @sortby2=(undef);
# Skip row 0
- &Apache::lonnet::logthis('starting sort for studentcalc');
for (my $row=1;$row<=$sheet->{'maxrow'};$row++) {
my (undef,$symb,$uname,$udom,$mapid,$resid,$title) =
split(':',$sheet->{'rowlabel'}->{$sheet->{'f'}->{'A'.$row}});
@@ -1210,12 +1210,14 @@ sub sort_indicies {
if ($sequence eq '') {
$sequence = $symb;
}
- push (@sortby, $sequence);
+ push (@sortby1, $sequence);
+ push (@sortby2, $title);
push (@sortidx, $row);
}
- @sortidx = sort { $sortby[$a] cmp $sortby[$b]; } @sortidx;
+ @sortidx = sort { $sortby1[$a] cmp $sortby1[$b] ||
+ $sortby2[$a] cmp $sortby2[$b] } @sortidx;
} else {
- my @sortby=();
+ my @sortby=(undef);
# Skip row 0
for (my $row=1;$row<=$sheet->{'maxrow'};$row++) {
push (@sortby, $sheet->{'safe'}->reval('$f{"A'.$row.'"}'));
@@ -1315,7 +1317,7 @@ END
# Print out template row
####################################
my ($rowlabel,@rowdata) = &get_row($sheet,'-');
- my $row_html = '
'.&format_html_rowlabel($rowlabel).'
';
+ my $row_html = '
'.&format_html_rowlabel($sheet,$rowlabel).'
';
my $num_cols_output = 0;
foreach my $cell (@rowdata) {
if ($num_cols_output++ < $num_uneditable) {
@@ -1333,7 +1335,7 @@ END
# Print out summary/export row
####################################
my ($rowlabel,@rowdata) = &get_row($sheet,'0');
- $row_html = '
'.&format_html_rowlabel($rowlabel).'
';
+ $row_html = '
'.&format_html_rowlabel($sheet,$rowlabel).'
';
$num_cols_output = 0;
foreach my $cell (@rowdata) {
if ($num_cols_output++ < 26) {
@@ -1361,7 +1363,8 @@ END
next if (($sheet->{'sheettype'} eq 'assesscalc') &&
(! $ENV{'form.showall'}) &&
($rowdata[0]->{'value'} =~ /^\s*$/));
- if ($sheet->{'sheettype'} =~ /^(studentcalc|classcalc)$/) {
+ if (! $ENV{'form.showall'} &&
+ $sheet->{'sheettype'} =~ /^(studentcalc|classcalc)$/) {
my $row_is_empty = 1;
foreach my $cell (@rowdata) {
if ($cell->{'value'} !~ /^\s*$/) {
@@ -1369,7 +1372,7 @@ END
last;
}
}
- next if $row_is_empty;
+ next if ($row_is_empty);
}
#
my $defaultbg='#E0FF';
@@ -1378,11 +1381,11 @@ END
'';
#
if ($sheet->{'sheettype'} eq 'classcalc') {
- $row_html.='
'.&format_html_rowlabel($rowlabel).'
';
+ $row_html.='
'.&format_html_rowlabel($sheet,$rowlabel).'
';
# Output links for each student?
# Nope, that is already done for us in format_html_rowlabel (for now)
} elsif ($sheet->{'sheettype'} eq 'studentcalc') {
- $row_html.='