--- loncom/interface/Attic/lonspreadsheet.pm 2002/09/01 18:06:52 1.106
+++ loncom/interface/Attic/lonspreadsheet.pm 2002/09/09 17:18:33 1.108
@@ -1,5 +1,5 @@
#
-# $Id: lonspreadsheet.pm,v 1.106 2002/09/01 18:06:52 matthew Exp $
+# $Id: lonspreadsheet.pm,v 1.108 2002/09/09 17:18:33 matthew Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1395,12 +1395,13 @@ sub parse_sheet {
#
sub readsheet {
- my ($safeeval,$fn)=@_;
- my $stype = &gettype($safeeval);
- my $cnum = &getcnum($safeeval);
- my $cdom = &getcdom($safeeval);
- my $chome = &getchome($safeeval);
-
+ my ($safeeval,$sheetdata,$fn)=@_;
+ #
+ my $stype = $sheetdata->{'sheettype'};
+ my $cnum = $sheetdata->{'cnum'};
+ my $cdom = $sheetdata->{'cdom'};
+ my $chome = $sheetdata->{'chome'};
+ #
if (! defined($fn)) {
# There is no filename. Look for defaults in course and global, cache
unless ($fn=$defaultsheets{$cnum.'_'.$cdom.'_'.$stype}) {
@@ -1679,11 +1680,11 @@ sub parmval {
# ---------------------------------------------- Update rows for course listing
sub updateclasssheet {
- my $safeeval=shift;
- my $cnum=&getcnum($safeeval);
- my $cdom=&getcdom($safeeval);
- my $cid=&getcid($safeeval);
- my $chome=&getchome($safeeval);
+ my ($safeeval,$sheetdata) = @_;
+ my $cnum =$sheetdata->{'cnum'};
+ my $cdom =$sheetdata->{'cdom'};
+ my $cid =$sheetdata->{'cid'};
+ my $chome =$sheetdata->{'chome'};
#
# Read class list and row labels
my %classlist;
@@ -1783,13 +1784,17 @@ sub updateclasssheet {
# ----------------------------------- Update rows for student and assess sheets
sub updatestudentassesssheet {
- my $safeeval=shift;
+ my ($safeeval,$sheetdata) = @_;
my %bighash;
- my $stype=&gettype($safeeval);
+ my $stype=$sheetdata->{'sheettype'};
+ my $uname=$sheetdata->{'uname'};
+ my $udom =$sheetdata->{'udom'};
my %current=();
- if ($updatedata{$ENV{'request.course.fn'}.'_'.$stype}) {
+ if ($updatedata
+ {$ENV{'request.course.fn'}.'_'.$stype.'_'.$uname.'_'.$udom}) {
%current=split(/\_\_\_\;\_\_\_/,
- $updatedata{$ENV{'request.course.fn'}.'_'.$stype});
+ $updatedata{$ENV{'request.course.fn'}.
+ '_'.$stype.'_'.$uname.'_'.$udom});
} else {
# Tie hash
tie(%bighash,'GDBM_File',$ENV{'request.course.fn'}.'.db',
@@ -1807,10 +1812,8 @@ sub updatestudentassesssheet {
'totalpoints' =>
'Total Points Granted
totalpoints');
my $adduserstr='';
- if ((&getuname($safeeval) ne $ENV{'user.name'}) ||
- (&getudom($safeeval) ne $ENV{'user.domain'})) {
- $adduserstr='&uname='.&getuname($safeeval).
- '&udom='.&getudom($safeeval);
+ if (($uname ne $ENV{'user.name'}) || ($udom ne $ENV{'user.domain'})){
+ $adduserstr='&uname='.$uname.'&udom='.$udom;
}
my %allassess =
('_feedback' =>'Discussion'
);
- foreach (keys(%bighash)) {
+ while (($_,undef) = each(%bighash)) {
next if ($_!~/^src\_(\d+)\.(\d+)$/);
my $mapid=$1;
my $resid=$2;
@@ -1861,7 +1864,7 @@ sub updatestudentassesssheet {
} elsif ($stype eq 'studentcalc') {
%current=%allassess;
}
- $updatedata{$ENV{'request.course.fn'}.'_'.$stype}=
+ $updatedata{$ENV{'request.course.fn'}.'_'.$stype.'_'.$uname.'_'.$udom}=
join('___;___',%current);
# Get current from cache
}
@@ -2184,9 +2187,9 @@ sub updatesheet {
my ($safeeval,$sheetdata)=@_;
my $stype=$sheetdata->{'sheettype'};
if ($stype eq 'classcalc') {
- return &updateclasssheet($safeeval);
+ return &updateclasssheet($safeeval,$sheetdata);
} else {
- return &updatestudentassesssheet($safeeval);
+ return &updatestudentassesssheet($safeeval,$sheetdata);
}
}
@@ -2292,7 +2295,7 @@ sub exportsheet {
# Not cached
#
my ($thissheet,$sheetdata)=&makenewsheet($uname,$udom,$stype,$usymb);
- &readsheet($thissheet,$fn);
+ &readsheet($thissheet,$sheetdata,$fn);
&updatesheet($thissheet,$sheetdata);
&loadrows($thissheet,$sheetdata);
&calcsheet($thissheet,$sheetdata);
@@ -2540,7 +2543,7 @@ ENDSCRIPT
&setfilename($asheet,$ENV{'form.ufn'});
&tmpread($asheet);
} else {
- &readsheet($asheet,$ENV{'form.ufn'});
+ &readsheet($asheet,$asheetdata,$ENV{'form.ufn'});
}
# Print out user information
unless ($asheetdata->{'sheettype'} eq 'classcalc') {