--- 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') {