--- loncom/interface/Attic/lonspreadsheet.pm 2002/07/30 21:23:44 1.98 +++ loncom/interface/Attic/lonspreadsheet.pm 2002/09/09 18:28:02 1.100.2.1 @@ -1,5 +1,5 @@ # -# $Id: lonspreadsheet.pm,v 1.98 2002/07/30 21:23:44 matthew Exp $ +# $Id: lonspreadsheet.pm,v 1.100.2.1 2002/09/09 18:28:02 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -768,6 +768,14 @@ sub expandnamed { } if ($#matches == 0) { $returnvalue = '$c{\''.$matches[0].'\'}'; + } elsif ($#matches > 0) { + # more than one match. Look for a concise one + $returnvalue = "'non-unique parameter name : $expression'"; + foreach (@matches) { + if (/^$expression$/) { + $returnvalue = '$c{\''.$_.'\'}'; + } + } } else { $returnvalue = "'bad parameter name : $expression'"; } @@ -1742,11 +1750,14 @@ sub updatestudentassesssheet { my $safeeval=shift; my %bighash; my $stype=&gettype($safeeval); + my $uname=&getuname($safeeval); + my $udom =&getudom($safeeval); my %current=(); - unless ($updatedata{$ENV{'request.course.fn'}.'_'.$stype}) { + unless ($updatedata{ + $ENV{'request.course.fn'}.'_'.$stype.'_'.$uname.'_'.$udom}) { # -------------------------------------------------------------------- Tie hash if (tie(%bighash,'GDBM_File',$ENV{'request.course.fn'}.'.db', - &GDBM_READER,0640)) { + &GDBM_READER(),0640)) { # --------------------------------------------------------- Get all assessments my %allkeys=('timestamp' => @@ -1824,7 +1835,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); } else { return 'Could not access course data'; @@ -1832,7 +1843,7 @@ sub updatestudentassesssheet { # ------------------------------------------------------ Get current from cache } else { %current=split(/\_\_\_\;\_\_\_/, - $updatedata{$ENV{'request.course.fn'}.'_'.$stype}); + $updatedata{$ENV{'request.course.fn'}.'_'.$stype.'_'.$uname.'_'.$udom}); } # -------------------- Find discrepancies between the course row table and this # @@ -2122,7 +2133,7 @@ sub loadassessment { my %c=(); if (tie(%parmhash,'GDBM_File', - &getcfn($safeeval).'_parms.db',&GDBM_READER,0640)) { + &getcfn($safeeval).'_parms.db',&GDBM_READER(),0640)) { my %f=&getformulas($safeeval); foreach (keys(%f)) { if ($_=~/^A/) {