[LON-CAPA-cvs] cvs: loncom /interface lonspreadsheet.pm
matthew
lon-capa-cvs@mail.lon-capa.org
Fri, 22 Nov 2002 19:21:59 -0000
matthew Fri Nov 22 14:21:59 2002 EDT
Modified files:
/loncom/interface lonspreadsheet.pm
Log:
Fix a bug which caused the links in student B's spreadsheet to be to
student A's assessment spreadsheets. This required adding the ubiquitous
$sheet as a parameter to all the format_????_rowlabel functions.
Index: loncom/interface/lonspreadsheet.pm
diff -u loncom/interface/lonspreadsheet.pm:1.148 loncom/interface/lonspreadsheet.pm:1.149
--- loncom/interface/lonspreadsheet.pm:1.148 Thu Nov 21 14:50:49 2002
+++ loncom/interface/lonspreadsheet.pm Fri Nov 22 14:21:59 2002
@@ -1,5 +1,5 @@
#
-# $Id: lonspreadsheet.pm,v 1.148 2002/11/21 19:50:49 matthew Exp $
+# $Id: lonspreadsheet.pm,v 1.149 2002/11/22 19:21:59 matthew Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1317,7 +1317,7 @@
# Print out template row
####################################
my ($rowlabel,@rowdata) = &get_row($sheet,'-');
- my $row_html = '<tr><td>'.&format_html_rowlabel($rowlabel).'</td>';
+ 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) {
@@ -1335,7 +1335,7 @@
# Print out summary/export row
####################################
my ($rowlabel,@rowdata) = &get_row($sheet,'0');
- $row_html = '<tr><td>'.&format_html_rowlabel($rowlabel).'</td>';
+ $row_html = '<tr><td>'.&format_html_rowlabel($sheet,$rowlabel).'</td>';
$num_cols_output = 0;
foreach my $cell (@rowdata) {
if ($num_cols_output++ < 26) {
@@ -1381,11 +1381,11 @@
'</font></b></td>';
#
if ($sheet->{'sheettype'} eq 'classcalc') {
- $row_html.='<td>'.&format_html_rowlabel($rowlabel).'</td>';
+ $row_html.='<td>'.&format_html_rowlabel($sheet,$rowlabel).'</td>';
# 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.='<td>'.&format_html_rowlabel($rowlabel);
+ $row_html.='<td>'.&format_html_rowlabel($sheet,$rowlabel);
$row_html.= '<br>'.
'<select name="sel_'.$rownum.'" '.
'onChange="changesheet('.$rownum.')">'.
@@ -1399,7 +1399,7 @@
}
$row_html.='</select></td>';
} elsif ($sheet->{'sheettype'} eq 'assesscalc') {
- $row_html.='<td>'.&format_html_rowlabel($rowlabel).'</td>';
+ $row_html.='<td>'.&format_html_rowlabel($sheet,$rowlabel).'</td>';
}
#
my $shown_cells = 0;
@@ -1469,7 +1469,7 @@
foreach my $rownum (@Rows) {
my ($rowlabel,@rowdata) = &get_row($sheet,$rownum);
next if ($rowlabel =~ /^\s*$/);
- push (@Values,&format_csv_rowlabel($rowlabel));
+ push (@Values,&format_csv_rowlabel($sheet,$rowlabel));
foreach my $cell (@rowdata) {
push (@Values,'"'.$cell->{'value'}.'"');
}
@@ -1638,7 +1638,7 @@
# Write the summary/export row #
####################################
my ($rowlabel,@rowdata) = &get_row($sheet,'0');
- my $label = &format_excel_rowlabel($rowlabel);
+ my $label = &format_excel_rowlabel($sheet,$rowlabel);
$cols_output = 0;
$worksheet->write($rows_output,$cols_output++,$label);
foreach my $cell (@rowdata) {
@@ -1655,7 +1655,7 @@
my ($rowlabel,@rowdata) = &get_row($sheet,$rownum);
next if ($rowlabel =~ /^[\s]*$/);
$cols_output = 0;
- my $label = &format_excel_rowlabel($rowlabel);
+ my $label = &format_excel_rowlabel($sheet,$rowlabel);
if ( ! $ENV{'form.showall'} &&
$sheet->{'sheettype'} =~ /^(studentcalc|classcalc)$/) {
my $row_is_empty = 1;
@@ -2052,15 +2052,16 @@
## Row label formatting routines ##
##################################################################
sub format_html_rowlabel {
+ my $sheet = shift;
my $rowlabel = shift;
return '' if ($rowlabel eq '');
my ($type,$labeldata) = split(':',$rowlabel,2);
my $result = '';
if ($type eq 'symb') {
- my ($symb,$uname,$udom,$mapid,$resid,$title) = split(':',$labeldata);
+ my ($symb,$mapid,$resid,$title) = split(':',$labeldata);
$symb = &Apache::lonnet::unescape($symb);
$result = '<a href="/adm/assesscalc?usymb='.$symb.
- '&uname='.$uname.'&udom='.$udom.
+ '&uname='.$sheet->{'uname'}.'&udom='.$sheet->{'udom'}.
'&mapid='.$mapid.'&resid='.$resid.'">'.$title.'</a>';
} elsif ($type eq 'student') {
my ($sname,$sdom,$fullname,$section,$id) = split(':',$labeldata);
@@ -2079,12 +2080,13 @@
}
sub format_csv_rowlabel {
+ my $sheet = shift;
my $rowlabel = shift;
return '' if ($rowlabel eq '');
my ($type,$labeldata) = split(':',$rowlabel,2);
my $result = '';
if ($type eq 'symb') {
- my ($symb,$uname,$udom,$mapid,$resid,$title) = split(':',$labeldata);
+ my ($symb,$mapid,$resid,$title) = split(':',$labeldata);
$symb = &Apache::lonnet::unescape($symb);
$result = $title;
} elsif ($type eq 'student') {
@@ -2100,12 +2102,13 @@
}
sub format_excel_rowlabel {
+ my $sheet = shift;
my $rowlabel = shift;
return '' if ($rowlabel eq '');
my ($type,$labeldata) = split(':',$rowlabel,2);
my $result = '';
if ($type eq 'symb') {
- my ($symb,$uname,$udom,$mapid,$resid,$title) = split(':',$labeldata);
+ my ($symb,$mapid,$resid,$title) = split(':',$labeldata);
$symb = &Apache::lonnet::unescape($symb);
$result = $title;
} elsif ($type eq 'student') {
@@ -2217,7 +2220,7 @@
my %assesslist;
foreach ('Feedback','Evaluation','Tutoring','Discussion') {
my $symb = '_'.lc($_);
- $assesslist{$symb} = join(':',('symb',$symb,$uname,$udom,0,0,$_));
+ $assesslist{$symb} = join(':',('symb',$symb,0,0,$_));
}
#
while (my ($key,$srcf) = each(%course_db)) {
@@ -2230,8 +2233,7 @@
&Apache::lonnet::declutter($course_db{'map_id_'.$mapid}).
'___'.$resid.'___'.&Apache::lonnet::declutter($srcf);
$assesslist{$symb}='symb:'.&Apache::lonnet::escape($symb).':'
- .$uname.':'.$udom.':'.$mapid.':'.$resid.':'.
- $course_db{'title_'.$id};
+ .$mapid.':'.$resid.':'.$course_db{'title_'.$id};
}
}
untie(%course_db);